Tho*_*ggi 18 testing mocha.js node.js jestjs
我有兴趣创建完整的模拟单元测试,以及检查某些异步操作是否已正确返回的集成测试.我想要一个用于unit
测试的命令和一个用于integration
测试的命令,我可以在我的CI工具中单独运行它们.最好的方法是什么?像mocha和jest这样的工具似乎只关注一种做事方式.
我看到的唯一选择是使用mocha并在目录中有两个文件夹.
就像是:
__unit__
__integration__
然后我需要一些方法告诉mocha运行目录__unit__
中的所有测试src
,另一个告诉它运行所有__integration__
测试.
思考?
Mat*_*att 40
Mocha支持目录,文件通配和测试名称grepping,可用于创建测试的"组".
test/unit/whatever_spec.js
test/int/whatever_spec.js
Run Code Online (Sandbox Code Playgroud)
然后对js
目录中的所有文件运行测试
mocha test/unit
mocha test/int
mocha test/unit test/int
Run Code Online (Sandbox Code Playgroud)
test/unit_whatever_spec.js
test/int_whatever_spec.js
Run Code Online (Sandbox Code Playgroud)
然后用特定文件运行mocha
mocha test/unit_*_spec.js
mocha test/int_*_spec.js
mocha
Run Code Online (Sandbox Code Playgroud)
在mocha中创建描述测试类型和类/主题的外部块.
describe('Unit::Whatever', function(){})
describe('Integration::Whatever', function(){})
Run Code Online (Sandbox Code Playgroud)
然后使用mochas"grep"参数运行命名块 -g
mocha -g ^Unit::
mocha -g ^Integration::
mocha
Run Code Online (Sandbox Code Playgroud)
使用测试名称时保持文件或目录分离仍然很有用,这样您就可以轻松区分失败测试的源文件.
将每个测试命令存储在package.json scripts
部分中,这样可以很容易地运行类似yarn test:int
或者npm run test:int
.
{
scripts: {
"test": "mocha test/unit test/int",
"test:unit": "mocha test/unit",
"test:int": "mocha test/int"
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4917 次 |
最近记录: |