2013-01-06 47 views
0

我正在關注一本名爲「單元測試的藝術」的書。我已經達到了需要測試使用NUNit寫入的測試方法的程度。作者指示構建項目,然後找到構建的程序集文件的路徑,並指定NUnit的路徑進行測試。在NUnit中構建和加載文件

我的問題是,我似乎無法得到這個大會文件路徑。它位於哪裏?

另外,當我運行我的代碼,我收到以下錯誤:

Error 2 Program 'c:\Users\Documents\Visual Studio 2012\Projects\Loganalyzer\Loganalyzer\obj\Debug\Loganalyzer.exe' does not contain a static 'Main' method suitable for an entry point c:\users\documents\visual studio 2012\Projects\Loganalyzer\Loganalyzer\CSC Loganalyzer 

這裏是我的代碼:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 

namespace Loganalyzer 
{ 
    public class LogAnalyzer 
    { 
     public bool IsValidLogFileName(string fileName) 
     { 
      if (!fileName.EndsWith(".SLF")) 
      { 
       return false; 
      } 
      return true; 
     } 
    } 
} 

我下面這是在書中,但不能得到確切的例子它可以像你所看到的那樣工作。我會感謝你的幫助人員。

using Loganalyzer; 
using NUnit.Framework; 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 


namespace LogAnalyzerTest 
{ 
    [TestFixture] 
    class LogAnalyzerTest 
    { 

     [Test] 
     public void IsValidFileName_validFile_ReturnsTrue() 
     { 
      //Arrange (Arranges objects, creating and setting them up as necessary). 
      LogAnalyzer analyzer = new LogAnalyzer(); 

      //Act 
      bool result = analyzer.IsValidLogFileName("whatever.SLF"); 

      //Assert (Asserts that something is as expected) 
      Assert.IsTrue(result, "file name should be valid"); 
     } 

    } 
} 
+0

您可以發佈你的測試夾具/類。 –

+0

@ ChrisMissal,我發佈了我的測試課。我很感謝你的幫助,因爲我從昨天開始一直無法取得進展。 – Stranger

回答

0

它好像你要運行類項目紀錄分析工具,但你可能會想使用某種測試跑步者的。我更喜歡TestDriven.net。

+0

,我正在使用NUNit – Stranger

0

NUnit的只是一個測試框架(非常簡單的,它規定了如何設置測試等方面的規則)。

你需要的是一些應用程序或插件來實際運行它們。您可以運行concole runnerGUI runner(例如NUnit)或TestDriven.net(我聽說它非常出色)中的測試。

就個人而言,我用自帶的Resharper(雖然這僅僅是免費試用一個月左右)的亞軍。

的一點是,你沒有一個可執行的項目,而是一個類庫,包含的東西進行測試。跑步者運行你的測試,然後調用你的代碼。

0

如果要使用本機NUnit的亞軍您通常使用的一類這樣的

static class NUnitLauncher 
{ 
    [STAThread] 
    static void Main() 
    { 
     AppEntry.Main(new[] { Assembly.GetExecutingAssembly().Location }); 
    } 
} 

您還可以將它設置爲啓動對象(在項目屬性)。

您還需要引用NUnit的圖形用戶界面,runner.dll您可以在NUnit的找到安裝目錄(一般程序文件)。我的是在

C:\Program Files (x86)\NUnit 2.5.7\bin\net-2.0\lib 

本機NUnit的亞軍有它的問題,但是我發現在調試時ReSharper的(6.1)測試運行是不穩定的 - 有時彈了隨機。它也不瞭解你在nunit中可以使用的所有不同類型的參數化測試。希望這不是新版本的情況 - 它有一個更好的用戶界面。

你在上面描述的問題是兩個不同的東西 - 一個聽起來那是因爲你沒有一個啓動對象集;另一個聽起來像是組裝是什麼混亂。這被製作編譯時會包含一個程序集的可執行文件 - 如果你點在NUnit的那麼它應該工作(假設它有一些NUnit的東西在裏面(如東西標記了[測試]等))