0
在我的項目中,我重載了函數GetPrimeList(int max)和GetPrimeList(long max)。nUnit測試中的不同結果 - 運行vs調試
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);
}
現在,當我運行在正常模式下,他們全部通過測試,但是當我在調試模式下運行,測試長期爭論失敗(如預期)。
有單獨的測試項目;當我在原始項目中調用函數時,我無法重現行爲(嘗試比較發佈和調試模式)。我也試過在我的測試項目中關閉代碼優化,但並沒有解決問題。
任何想法如何解決我的測試項目?
你可以嘗試重新命名最後一個「GetPrimeList_ShouldReturnAllPrimesBelowGivenNumber」類似「GetLongPrimeList_ShouldReturnAllPrimesBelowGivenNumber」並再次檢查它?只是覺得它可能很重要。我的假設是,在正常模式下不會調用最新的測試。 –
我會添加日誌功能。如果您沒有在解決方案中使用日誌框架,請添加一些'Trace.Write'並將其記錄到文件中。 – oleksii
@mt_serg:你說得對,它解決了一個問題。你可以正常發佈你的答案,所以我可以將其標記爲已解決? – Zaphood