2010-04-09 71 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

相关问题