繁体   English   中英

单元测试和集成测试的分离

[英]Separation of unit tests and integration tests

我有兴趣创建完整的模拟单元测试,以及检查某些异步操作是否正确返回的集成测试。 我想要一个用于unit测试的命令和一个用于integration测试的命令,这样我就可以在我的 CI 工具中单独运行它们。 做到这一点的最佳方法是什么? 像 mocha 和 jest 这样的工具似乎只专注于一种做事方式。

我看到的唯一选择是使用 mocha 并在一个目录中有两个文件夹。

类似的东西:

  • __unit__
  • __integration__

然后我需要某种方式告诉 mocha 运行src目录中的所有__unit__测试,另一种方式告诉它运行所有__integration__测试。

想法?

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

然后针对特定文件运行 mocha

mocha test/unit_*_spec.js
mocha test/int_*_spec.js
mocha

测试名称

在 mocha 中创建描述测试类型和类/主题的外部块。

describe('Unit::Whatever', function(){})

describe('Integration::Whatever', function(){})

然后使用 mochas "grep" 参数运行命名块--grep / -g

mocha -g ^Unit::
mocha -g ^Integration::
mocha

在使用测试名称时保持文件或目录分隔仍然很有用,这样您就可以轻松区分失败测试的源文件。

包.json

将每个测试命令存储在您的 package.json scripts部分,以便使用诸如yarn test:intnpm run test:int类的东西很容易运行。

{
  scripts: {
    "test": "mocha test/unit test/int",
    "test:unit": "mocha test/unit",
    "test:int": "mocha test/int"
  }
}

mocha 不支持标签或类别。 你理解正确。 必须创建两个文件夹,unit和integration,像这样调用mocha

摩卡单元摩卡集成

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM