编程语言
首页 > 编程语言> > javascript – 使用Jasmine或任何其他替代方案在Node上运行测试.mjs / ESM

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

作者:互联网

由于–experimental-modules CLI开关(即节点–experimental-modules),我的基于节点的项目是使用节点上的本机ES模块支持实现的.

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

Error [ERR_REQUIRE_ESM]: Must use import to load 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()

标签:javascript,node-js,testing,jasmine,es6-modules
来源: https://codeday.me/bug/20190607/1195536.html