Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

174
Vistas
Uso de QUnit CLI: problemas con la sintaxis de importación/exportación

Creo que el problema es con las diferencias entre el uso de ES Modules vs Common JS Module vs Webpack, ¡pero he venido aquí para descubrir qué es lo que está mal!

Básicamente, tengo QUnit configurado y funcionando bien a través del navegador. Pero quiero agregarlo a nuestro proceso de prueba de línea de comando de desarrollo para que QUnit también se ejecute. Encontré QUnit CLI y fue fácil ponerlo en marcha.

Ejecuto mi archivo de prueba con npx qunit path/to/test/*.js

 //Working test example running from cli. QUnit.module('math'); function add(a, b) { return a + b; } QUnit.test('add two numbers', assert => { assert.equal(add(1, 2), 3); });

Pero cuando quiero probar el código real de los archivos de nuestro proyecto, recibo errores como: SyntaxError: Cannot use import statement outside a module así que intenté cambiar el archivo a .mjs, que luego falla al import { Code } from '../code/Code.js'; ^^^^^^ SyntaxError: Named export 'Code' not found. The requested module '../code/Code.js' is a CommonJS module, which may not support all module.exports as named exports.

Idealmente, me gustaría que mi entorno de prueba siguiera un camino similar al de la visita al sitio web principal.

Otro problema que asumo es debido a webpack.

En webpack tenemos:

 resolve: { alias: { '@': path.resolve( __dirname, 'code/files' ) }, },

Entonces, todos nuestros archivos, por ejemplo, se importan con import { CodeThing } from '@/somecode/CodeThing'; . ¿Hay alguna forma de hacer que webpack y QUnit funcionen juntos de manera amigable?

Ejemplo de código de prueba completo que quiero que ejecute QUnit:

 import { CodeThing } from '@/somecode/CodeThing.js'; QUnit.module( 'CodeThing' ); QUnit.test( 'CodeThing.Round', function( assert ) { assert.ok( CodeThing.Round( 1.005, 2 ) === 1.01, 'CodeThing.Round(1.005, 2) === 1.01 -- Passed!' ); } ) ;

Entonces CodeThing.js contiene código como:

 import { MoreCode } from '@/code/MoreCode'; import { OtherCode} from '@/code/OtherCode'; export var CodeThing = function() { }; CodeThing.Round = function( int, decimal_places ) { //Code }; CodeThing.FuncTwo = function( param ) { //Code };
about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda