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

C# nUnit测试中的不同结果-运行与调试,c#,nunit,C#,Nunit,在我的项目中,我重载了函数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

在我的项目中,我重载了函数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);
}
现在,当我在正常模式下运行测试时,它们都通过了,但当我在调试模式下运行测试时,testforlong参数失败(正如预期的那样)

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


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

能否尝试将最后一个“GetPrimeList\u ShouldReturnAllPrimesBelowGivenNumber”重命名为类似“GetLongPrimeList\u ShouldReturnAllPrimesBelowGivenNumber”的名称,然后再次检查?只是觉得这很重要。我的假设是,在正常模式下,不会调用最新的测试。

能否尝试将最后一个“GetPrimeList\u ShouldReturnAllPrimesBelowGivenNumber”重命名为类似“GetLongPrimeList\u ShouldReturnAllPrimesBelowGivenNumber”的名称,然后再次检查?只是觉得这很重要。我的假设是,在正常模式下,不会调用最新的测试。

能否尝试将最后一个“GetPrimeList\u ShouldReturnAllPrimesBelowGivenNumber”重命名为类似“GetLongPrimeList\u ShouldReturnAllPrimesBelowGivenNumber”的名称,然后再次检查?只是觉得这很重要。我的假设是,在正常模式下,不会调用最新的测试。我会添加日志功能。如果解决方案中没有使用日志框架,请添加一些
跟踪。写入
并将其记录到文件中。@mt\u serg:你说得对,它解决了一个问题。您能否正常发布您的答案,以便我将其标记为已解决?您能否尝试将最后一个“GetPrimeList\u ShouldReturnAllPrimesBelowGivenNumber”重命名为类似“GetLongPrimeList\u ShouldReturnAllPrimesBelowGivenNumber”的名称,然后再次检查?只是觉得这很重要。我的假设是,在正常模式下,不会调用最新的测试。我会添加日志功能。如果解决方案中没有使用日志框架,请添加一些
跟踪。写入
并将其记录到文件中。@mt\u serg:你说得对,它解决了一个问题。你能正常发布你的答案吗,这样我就可以把它标记为已解决?