2009-07-10 75 views
7

我使用Visual Studio 2008和MBUnit測試Resharper 4.5,似乎有一些奇怪的與使用ReSharpher運行測試。Resharper運行所有測試時,只有一個選擇

旁邊有類旁邊的圖標,每個測試方法都帶有Run和Debug選項。當我選擇Run時,它只顯示單個測試的結果。但是我注意到測試需要相當長的時間才能運行。

當我運行Sql Server分析器並開始單步執行代碼時,我意識到它不僅運行選定的測試,而且還運行類中的每一個測試。是否有任何理由讓它看起來像它唯一運行的單元測試,而實際運行它們呢?

當我只關心一個人的重新使用時,它會變成一個等待所有集成測試運行的痛苦,有什麼方法可以改變這一點嗎?

+0

你使用Gallio來運行MBUnit測試嗎? – 2009-07-11 08:21:16

+1

你使用哪個版本的Gallio?較舊的版本包含一個產生類似於您所描述的行爲的錯誤> – 2009-07-11 22:19:19

+0

我已經安裝了Gallio,但我不認爲我使用它來運行測試。我只使用MBUnit exe。我如何判斷VS是否使用Gallio?安裝的版本是3.0.0.179。 – Brandon 2009-07-14 15:00:41

回答

5

我只是遇到了這個今天,我想我可能已經意識到是什麼原因導致這個錯誤,我有我的方法同樣

[TestMethod] 
    public void TestSomething() 

    [TestMethod] 
    public void TestSomethingPart2() 

命名。我發現,TestSomething()將同時運行,但運行TestSomethingPart2()不會。我得出的結論是,如果您命名方法,那麼它將運行測試的方法名稱會發生​​完全匹配。將第二個測試重命名爲TestPart2Something後,此問題消失。

0

當您在編輯器中右鍵單擊時,會出現上下文菜單,您可以從中運行和調試測試。在測試方法內右鍵單擊以運行或調試單個測試。在任何測試方法之外右鍵單擊以運行或調試當前文件中包含的整個測試類。

0

當前版本的Gallio包括一個MbUnit(和NUnit)支持內置的單元測試運行器。

從Resharper菜單中,您可以選擇在解決方案中運行單個單元測試或所有測試。什麼是酷,是鍵盤,快捷鍵這是:

  • Alt + R鍵,U,R - 從當前上下文中運行測試(如果你是在一個[Test]水平,它會運行一個測試,如果你是在[TestFixture]水平,運行所有的燈具)
  • Alt + R鍵,U,N - 運行在您的解決方案所有的單元測試

我強烈建議你卸載當前的加利奧然後檢查C:\ Program Files \ Jetbrains \ Resharper \ plugins \ bin,然後清除文件和文件。然後重新安裝Gallio。

一旦你完成了這個任務,你應該啓動VS2008並轉到Resharper |插件菜單檢查Gallio插件是否處於活動狀態。這會給你支持MbUnit。

3

我希望這在Chris的帖子下顯示出來。

我有類似的情況,確認他注意到的行爲。

[TestMethod()] 
public void ArchiveAccountTest() 

[TestMethod()] 
public void ArchiveAccountTestRestore() 

因此,運行第一種方法將執行二者並運行第二種方法不會。將我的第二個方法重命名爲TestRestore,問題就消失了。

注意:我使用的是Resharper 5.1,所以它仍然是一個問題。

5

我可以確認這是ReSharper 5.1的問題。

從我下面的示例代碼中重現運行測試A(所有測試都將執行);運行測試AB(除A之外都會執行);等:

[TestMethod] 
public void A() 
{ 
    Console.WriteLine("A"); 
} 

[TestMethod] 
public void AB() 
{ 
    Console.WriteLine("AB"); 
} 

[TestMethod] 
public void ABC() 
{ 
    Console.WriteLine("ABC"); 
} 

[TestMethod] 
public void ABCD() 
{ 
    Console.WriteLine("ABCD"); 
} 

[TestMethod] 
public void ABCDE() 
{ 
    Console.WriteLine("ABCDE"); 
} 

我花了很多時間來解決這個問題。我有一個遠程調試器連接到一個開發服務器,並且它比我期望的要更頻繁...

它似乎在做一個StartsWith而不是像其他人所說的Contains。 解決方法是不具有以另一個測試方法名稱的名稱開頭的測試方法名稱。

相關問題