测试覆盖在测试项目上工作,但在被测试的DLL上为零

本文关键字:测试 DLL 项目 工作 测试覆盖 | 更新日期: 2023-09-27 18:11:16

我已经构建了一个测试类,如下所示。

[TestFixture]
public class UnitTests
{
  [TestCase(3, 5, 8)]
  [TestCase(3, null, 3)]
  public void UnitTestMethod1(int? a, int? b, int expected)
  {
    int actual = Utilities.SomeSum(a, b);
    Assert.AreEqual(expected, actual);
  }

当我运行测试时,我在测试程序集上得到大于零的值,但在测试目标程序集上得到恰好为零。我到底做了什么蠢事!我还需要提供哪些信息?

测试的类是超基本的,看起来如下:

使用系统;

public class Utilities
{
  public static int SomeSum(int? a, int? b)
  {
    int? output;
    if (a == null && b == null)
      throw new Exception("Nulls!");
    a = a ?? 0;
    b = b ?? 0;
    output = a + b;
    return (int)output;
  }
}

当我在构建服务器上运行这些东西时,我得到了很好的结果,但在VS13本地-奇怪的事情发生了。我得到了最新的nUnit/dotCover,两者在其他项目中都按预期工作。奇怪…

测试覆盖在测试项目上工作,但在被测试的DLL上为零

请检查相应的PDB文件是否已正确定位,并确保没有排除测试所针对的程序集的筛选器。