Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

173
Views
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
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!