nUnit 测试中的不同结果 - 运行与调试

本文关键字:运行 调试 结果 测试 nUnit | 更新日期: 2023-09-27 18:32:50

在我的项目中,我有重载函数GetPrimeList(int max)和GetPrimeList(long max)。

GetPrimeList(int max) 实现了正确,但对于低于 10 的数字(目前),参数应该失败;

我有书面测试

[TestCase(1, 0)]
[TestCase(3, 1)]
public void GetPrimeList_ShouldReturnAllPrimesBelowGivenNumber(int max, int result)
{
    var primes = PrimeHelper.GetPrimeList(max);
    Assert.AreEqual(result, primes.Count);
}
[TestCase(1, 0)]
[TestCase(3, 1)]
public void GetPrimeList_ShouldReturnAllPrimesBelowGivenNumber(long max, int result)
{
    var primes = PrimeHelper.GetPrimeList(max);
    Assert.AreEqual(result, primes.Count);
}
现在,当我在正常模式下运行测试时,它们

都通过了,但是当我在调试模式下运行它们时,测试长参数失败(如预期的那样)。

有单独的测试项目;当我在原始项目中调用函数时,我无法重现行为(尝试比较发布和调试模式)。我也尝试在我的测试项目中关闭代码优化,但它没有解决问题。

知道如何修复我的测试项目吗?

nUnit 测试中的不同结果 - 运行与调试

您能否尝试将最后一个"GetPrimeList_ShouldReturnAllPrimesBelowGivenNumber"重命名为"GetLongPrimeList_ShouldReturnAllPrimesBelowGivenNumber"之类的名称并再次检查?只是觉得这很重要。我的假设是,在正常模式下,不会调用最新的测试。