【发布时间】:2021-09-18 19:06:00
【问题描述】:
我只用一种方法创建了一个项目,并在其上编写了一个单元测试,并且单元测试在本地通过。但不知道为什么在运行声纳云扫描仪后,它显示的覆盖率为零。
这是测试类
public class DataStructureTest
{
private readonly DataStructure ds;
public DataStructureTest()
{
ds = new DataStructure();
}
[Theory, MemberData(nameof(LongestString_Return_Longest_String_ShouldPass_Data))]
public void LongestString_Return_Longest_String_ShouldPass(string input, string expect)
{
// Act
var actual = ds.LongestString(input);
// Assert
Assert.Equal(expect, actual);
}
public static TheoryData<string, string> LongestString_Return_Longest_String_ShouldPass_Data()
{
return new TheoryData<string, string>
{
{ "Hello John", "Hello" },
{ "Hi John and Mandy", "Mandy" }
};
}
}
【问题讨论】:
-
通过 CI 工具或 Sonarqube 等静态代码分析工具进行代码覆盖测试的问题在于
unless the information is captured(特别是在 CI 期间),您将得到0%。我在 TeamCity 有过这种情况,并且仍然与 DevOps 相关