使用 Jasmine 或任何其他替代方案在 Node 上运行测试 .mjs / ESM

2024-02-08

我的基于 Node 的项目是使用 Node 上的原生 ES 模块支持来实现的,这要归功于--experimental-modulesCLI 开关(即node --experimental-modules).

显然,当我使用 Jasmine 运行规范时node --experimental-modules ./node_modules/jasmine/bin/jasmine我收到以下错误:

错误 [ERR_REQUIRE_ESM]:必须使用 import 加载 ES 模块

是否可以在 Node 中使用 ES 模块来使用 Jasmine?

如果没有,有什么替代方案吗不要使用框架(例如,运行测试npm脚本)?


这比我想象的要容易。

这只是调用一个您可能调用的文件run.mjs如下:

node --experimental-modules ./run.mjs

整个文件看起来像这样:

jasmine.mjs:

import Jasmine from "jasmine"
import JasmineConsoleReporter from "jasmine-console-reporter"

const jasmine = new Jasmine()
jasmine.loadConfigFile( "./support/jasmine.json" )

jasmine.env.clearReporters()
jasmine.addReporter( new JasmineConsoleReporter( {
    colors: true,
    cleanStack: true,
    verbosity: 4,
    listStyle: 'indent',
    activity: false
} ) )

export default jasmine

您可以在单独的文件中添加如下规格:

import jasmine from './my-project/spec/jasmine.mjs'

jasmine.env.describe('Foo', () => {
    jasmine.env.it('Bar', () => {
        // Expects, assertions...
    })
})

最后,你会跑jasmine导入两个已配置的jasmine实例及规格:

import jasmine from './my-project/spec/jasmine.mjs'
import someSpec1 from './my-project/spec/someSpec1.mjs'
import someSpecN from './my-project/spec/someSpecN.mjs'

someSpec1()
someSpecN()

jasmine.execute()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Jasmine 或任何其他替代方案在 Node 上运行测试 .mjs / ESM 的相关文章

随机推荐