代码之家  ›  专栏  ›  技术社区  ›  izb

如何为每个测试提供自己的测试结果文件夹?

  •  4
  • izb  · 技术社区  · 16 年前

    我有一组单元测试,每个测试都有一组方法,每个方法都在testsults文件夹中生成输出。目前,所有的测试文件都混在这个文件夹中,但是我想给混乱带来一些秩序。

    理想情况下,我希望为每个测试方法都有一个文件夹。

    我知道我可以将代码添加到每个测试中,以使它在子文件夹中生成输出,但我想知道是否有一种方法可以使用Visual Studio单元测试框架控制输出文件夹的位置,也许可以对每个测试类使用初始化方法,以便任何新的测试DDED自动获得自己的输出文件夹而不需要复制/粘贴样板代码?

    2 回复  |  直到 16 年前
        1
  •  0
  •   Hace    16 年前

    你让我猜一猜:这取决于你想用输出做什么?如果输出是由CruiseControl解析的testResult.xml,那么为什么您需要其中的多个呢?

    [编辑]

    通过在类中设置测试组并在[TestFixtureSetup]中设置输出文件夹,您可能能够跟踪文件夹?

    [编辑]

    您应该使用像nunit这样的测试框架,我想您对此很熟悉。

    对于特定的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
        }
    
        2
  •  0
  •   izb    16 年前

    我最终做了这个:

        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