使用TeamCity 9.0.2,我有一个Nunit构建步骤,其中包含以下配置:
从以下位置运行测试: ** \ * .Tests.dll
不要运行测试: ** \ obj \ ** \ * .dll
.NET Coverage工具: JetBrains dotCover
过滤器: - :MyAssembly.Tests(以及要排除的主程序集中的多个名称空间)
运行构建后,代码覆盖率报告会显示每个类两次,两者的输出/统计信息完全相同。例如:
Class1 100%(2/2)100%(20/20)75%(75/100)
Class1 100%(2/2)100%(20/20)75%(75/100)
Class2 100%(4/4)100%(30/30)80%(120/150)
Class2 100%(4/4)100%(30/30)80%(120/150)
还有其他人看到过同样的行为吗?如果是这样,你可以建议解决这个问题吗?
答案 0 :(得分:2)
如果您有两个不同的构建配置可以在同一个构建代理上运行,那么您可能会得到两个类似的测试程序集,例如与'***。Tests.dll'模式匹配。因此,覆盖率报告可能包含重复数据。
您可以更精确地在构建步骤中指定目标程序集(构建步骤|运行测试)或在构建之前清除相应的checkout目录(版本控制设置|在构建之前清除结帐目录中的所有文件)。