【发布时间】:2019-12-12 21:22:05
【问题描述】:
在我们的解决方案中,我们有大约 60 个项目。有一些核心“ish”库被其他项目引用。我们的单元测试与生产代码放在相同的 dll 中(没有特定的单元测试项目)。
我的问题始于在我们的 Team Foundation Server 中使用 Visual Studio 测试运行程序时的持续集成构建。 我希望测试运行器自动运行创建的 dll 中的所有测试。由于方便的原因,我不想手动将路径添加到创建的 dll 中。
目前我正在使用这样的通配符(我们所有的 dll 都以 Company.* 开头):
$(Build.SourcesDirectory)\**\bin\x64\Release\Company.*.dll
通过这种方式可以找到所有 dll,但它们会被找到不止一次,因为 dll 会被复制到引用 dll 的输出目录中。 这会产生大量时间浪费在多次运行相同的单元测试 (>20) 上。
那么我在寻找什么:
- 最好是告诉 vstest.console.exe 包含 dll 已经运行(我检查了命令行选项 - 没有)。
- 另一个选项是 TFS 的迷你匹配模板的特殊通配符,这样就不会将双 dll 传递给 vstest.console.exe(我什么都不知道,谷歌也不知道)。
- 你们如何处理单元测试以便它们在持续集成中自动运行的另一个最佳实践。
【问题讨论】:
标签: c# unit-testing tfs mstest