我有兴趣创建完整的模拟单元测试,以及检查某些异步操作是否已正确返回的集成测试。我想要unit
测试的一个命令和integration
测试的一个命令,我可以在我的CI工具中单独运行它们。最好的方法是什么?像mocha和jest这样的工具似乎只关注一种做事方式。
我看到的唯一选择是使用mocha并在目录中有两个文件夹。
类似的东西:
__unit__
__integration__
然后我需要一些方法告诉mocha运行__unit__
目录中的所有src
测试,另一个告诉它运行所有__integration__
测试。
思想?
答案 0 :(得分:36)
Mocha支持目录,文件通配和测试名称grepping,可用于创建"组"测试。
test/unit/whatever_spec.js
test/int/whatever_spec.js
然后使用
对目录中的所有js
文件运行测试
mocha test/unit
mocha test/int
mocha test/unit test/int
test/unit_whatever_spec.js
test/int_whatever_spec.js
然后使用
对特定文件运行mochamocha test/unit_*_spec.js
mocha test/int_*_spec.js
mocha
在mocha中创建描述测试类型和类/主题的外部块。
describe('Unit::Whatever', function(){})
describe('Integration::Whatever', function(){})
然后使用mochas" grep"运行命名块。参数-g
mocha -g ^Unit::
mocha -g ^Integration::
mocha
使用测试名称时保持文件或目录分离仍然很有用,这样您就可以轻松区分失败测试的源文件。
将每个测试命令存储在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"
}
}
答案 1 :(得分:-3)
mocha不支持标签或类别。你理解正确。 您必须创建两个文件夹,单元和集成,并像这样调用mocha
摩卡单位 摩卡整合