2013-04-15 37 views
2

我有以下代碼:NUnit的拋出的TestContext的NullReferenceException

[TestFixture] 
public class LexicalTests 
{ 
    [Test] 
    public void LexicalTest1() 
    { 
     TestContext.CurrentContext.TestDirectory; 
    } 
} 

CurrentContext拋出一個異常,而試圖獲得TestDirectoryWorkingDirectory財產。

我怎樣才能解決這個問題?

P.S:在我的家用電腦測試很好地工作(不奇怪的例外)。

+0

我見過有計算器上一些類似的問題,但我無法找到答案。 –

+1

我無法重現該行爲。你使用的是什麼版本的NUnit?你如何運行測試?你有沒有其他的庫鏈接,也可能使用TestContext作爲對象名稱?其他單元測試是否正確運行?你能發佈一個失敗的單元測試的確切代碼嗎? – Malice

+0

我使用NUnit 2.6.2與ReSharper的單元測試UI ... 我發現,測試通過,當我的用戶nunit.exe –

回答

1

看來,一些應用程序提供的功能來運行NUnit的單元測試都與類的TestContext一個問題。

在下面類中的測試應該通過:

using NUnit.Framework; 

namespace UnitTests 
{ 
    [TestFixture] 
    public class UnitTests 
    { 
     [Test] 
     public void CurrentContextTest() 
     { 
      Assert.IsNotNull(TestContext.CurrentContext); 
      Assert.IsNotNull(TestContext.CurrentContext.TestDirectory); 
      Assert.IsNotNull(TestContext.CurrentContext.WorkDirectory); 
     } 
    } 
} 

如果測試不那麼通視梅德在他的評論中寫道以上,更改ReSharper的菜單NUnit的版本。在Visual Studio中,轉到ReSharper - > Options - > Tools - > NUnit。單擊指定的NUnit安裝單選按鈕,並確保指定了包含nunit.core.dll,nunit.core.interfaces.dll和nunit.util.dll的文件夾。如果列出的文件無法找到,將會顯示錯誤。

enter image description here

一旦NUnit的版本已經改變,重新運行測試,它應該通過。

相關問題