gpt4 book ai didi

javascript - 如何在 Mocha 中使用 Native Node JS 模块(--experimental-modules)

转载 作者:搜寻专家 更新时间:2023-11-01 00:04:12 26 4
gpt4 key购买 nike

我有以下测试套件...

import Mocha from 'mocha';
import path from 'path';
const __dirname = path.dirname(new URL(import.meta.url).pathname);
(()=>{
let mocha = new Mocha();
mocha.addFile(path.resolve(__dirname,'./tests/sampleTest.js'));
mocha.run(failures => {
console.log("Running Mocha");

process.on('exit', () => {
console.log("Ending Mocha");
process.exit(failures ? 1 : 0);
});
});
})();

和下面的测试文件...

const assert = require('assert');
describe('Array', function() {
describe('#indexOf()', function() {
it('should return -1 when the value is not present', function() {
assert.equal([1,2,3].indexOf(4), -1);
});
});
});

这很好用,但是,我想将它转换为模块 JS (.mjs),以便我可以在测试中导入其他模块。我通过更改扩展名和制作代码来尝试这个......

import assert from 'assert';
describe('Array', function() {
describe('#indexOf()', function() {
it('should return -1 when the value is not present', function() {
assert.equal([1,2,3].indexOf(4), -1);
});
});
});

当我运行它时,我得到...

必须使用import来加载ES模块:**/src/test/js/webdriver/tests/sampleTest.mjs

我也试过像这样导入它......

import Mocha from 'mocha';
import path from 'path';
import './tests/sampleTest.mjs';
const __dirname = path.dirname(new URL(import.meta.url).pathname);
(()=>{
let mocha = new Mocha();
// mocha.addFile(path.resolve(__dirname,'./tests/sampleTest.mjs'));
mocha.run(failures => {
console.log("Running Mocha");

process.on('exit', () => {
console.log("Ending Mocha");
process.exit(failures ? 1 : 0);
});
});
})();

但后来我得到...

ReferenceError: describe is not defined

我也试过

import mocha from "mocha"
...
mocha.describe(...)

但这也没有用。

如何将另一个模块加载到 mocha 中?

最佳答案

目前唯一的解决方法是 https://www.npmjs.com/package/mjs-mocha

我希望这个链接适合这里,因为 npm 确实会永远保存包。随意引用包文档和来源

关于javascript - 如何在 Mocha 中使用 Native Node JS 模块(--experimental-modules),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51067222/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com