2010-04-09 72 views
4

我有一組單元測試,每個測試都有一堆方法,每個方法在TestResults文件夾中生成輸出。目前,所有的測試文件都混雜在這個文件夾中,但我想給混沌帶來一些順序。我如何給每個測試自己的TestResults文件夾?

理想情況下,我想每個測試方法都有一個文件夾。

我知道我可以爲每個測試添加代碼以使其在子文件夾中生成輸出,但我想知道是否有方法使用Visual Studio單元測試框架控制輸出文件夾位置,可能使用每個測試類的初始化方法,以便添加的任何新測試自動獲得他們自己的輸出文件夾,而不需要複製/粘貼樣板代碼?

回答

0

我落得這樣做:

private string TestDir; 

    [TestInitialize] 
    public void InitilizeTests() 
    { 
     TestDir = TestContext.TestDir + @"\Out\" + 
       this.GetType().Name + @"." + TestContext.TestName + @"\"; 

     Directory.CreateDirectory(TestDir); 
    } 

這將創建一個目錄結構是這樣的:

TestResults 
    <test run> 
     Out 
      <test class name>.<test method name> 

我只記得將單元測試的所有輸出導入TestDir

0

你讓我猜測了一下:它取決於你想用輸出做什麼?如果輸出是由CruiseControl解析的TestResult.xml,爲什麼你需要多個這些?

[編輯]

你也許可以通過在在[TestFixtureSetup]一類和設置outputfolder你的測試組來跟蹤文件夾?

[編輯]

您應該使用像NUnit的一個testframework,我假設你是熟悉。

不僅僅是爲某個特定的TestClass你可以這樣做:

[TestFixture] 
public class MyOutPutTests 
{ 

    private string folder; 

    [SetUp] 
    public void InitializeFolder() 
    { 
     this.folder = @"d:\MyFirstOutputTests"; 
    } 

    [Test] 
    public void OutImages() 
    { 
     ... write to this.folder 
    } 

    [Test] 
    public void OutputLogs() 
    { 
     .. write logs to this.folder 
    } 
+0

每個測試都會生成一個或多個日誌,圖像和輸出文件,我希望通過它們進行視覺檢查。 – izb 2010-04-09 19:52:30

+0

聽起來像TestFixtureSetup有承諾..你能舉個例子嗎? – izb 2010-04-09 19:58:11

相關問題