使用Jasmine或任何其他替代方案在Node上运行测试.mjs / ESM
由于--experimental-modules
CLI开关(即node --experimental-modules
),我在Node上使用本机ES模块支持实现了基于节点的项目。
显然,当我使用Jasmine node --experimental-modules ./node_modules/jasmine/bin/jasmine
运行规范时,我收到以下错误:
错误[ERR_REQUIRE_ESM]:必须使用import来加载ES Module
在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()
使用Jasmine或任何其他替代方案在Node上运行测试.mjs / ESM
由于--experimental-modules
CLI开关(即node --experimental-modules
),我在Node上使用本机ES模块支持实现了基于节点的项目。
显然,当我使用Jasmine node --experimental-modules ./node_modules/jasmine/bin/jasmine
运行规范时,我收到以下错误:
错误[ERR_REQUIRE_ESM]:必须使用import来加载ES Module
在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()