gpt4 book ai didi

environment-variables - Mocha : how to run multiple JS test files under separate process environment

转载 作者:行者123 更新时间:2023-12-04 15:18:44 34 4
gpt4 key购买 nike

我是 Mocha 新手,所以这可能是一个微不足道的问题,但还没有找到答案:

我有一个带有以下 package.json 的简单 NodeJS 项目

{
"name": "test",
"version": "1.0.0",
"description": "test",
"main": "index.js",
"scripts": {
"test": "mocha"
},
"author": "davide talesco",
"license": "ISC",
"devDependencies": {
"chai": "^4.0.2",
"mocha": "^3.4.2"
}
}

以及 test 文件夹下的以下 2 个测试文件:

test1.js
process.env.NODE_ENV = 'test';

var chai = require('chai');
var should = chai.should();

describe('Test setProp', function(){
it('env variable should be test', function(done){
process.env.NODE_ENV.should.be.equal('test');
return done();
});
});

test2.js
process.env.NODE_ENV = 'prod';

var chai = require('chai');
var should = chai.should();

describe('Test setProp', function(){
it('env variable should be prod', function(done){
process.env.NODE_ENV.should.be.equal('prod');
return done();
});
});

当我运行 npm test 时,第一个测试成功完成,而第二个测试失败,如下所示
ie-macp-davidt:crap davide_talesco$ npm test

> pc-lib@1.0.0 test /Users/davide_talesco/development/crap
> mocha



Test setProp
1) env variable should be test

Test setProp
✓ env variable should be prod


1 passing (16ms)
1 failing

1) Test setProp env variable should be test:

AssertionError: expected 'prod' to equal 'test'
+ expected - actual

-prod
+test

at Context.<anonymous> (test/test1.js:11:36)



npm ERR! Test failed. See above for more details.

很明显,测试是在同一进程下运行的......
我的问题是:如何让它们在完全独立的进程下运行,以便每个进程都可以设置自己的环境?

谢谢,

戴维德

最佳答案

最简单的方法之一是使用 Unix find命令:
find ./test -name '*.js' -exec mocha \{} \;
我建议使用本地 mocha二进制文件以避免在未全局安装时出现问题:
find ./test -name '*.js' -exec ./node_modules/.bin/mocha \{} \;
如果你想把它添加到 package.json,请注意反斜杠应该被转义:

...
"scripts": {
"test": "find ./test -name '*.js' -exec ./node_modules/.bin/mocha \\{} \\;"
},
...

关于environment-variables - Mocha : how to run multiple JS test files under separate process environment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45379887/

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