Как дать каждому тесту свою собственную папку TestResults? - PullRequest
4 голосов
/ 09 апреля 2010

У меня есть набор модульных тестов, каждый с кучей методов, каждый из которых производит вывод в папку TestResults. На данный момент все тестовые файлы перемешаны в этой папке, но я бы хотел навести порядок в хаосе.

В идеале, я бы хотел иметь папку для каждого метода тестирования.

Я знаю, что могу добавить код к каждому тесту, чтобы он выводил результаты во вложенной папке, но мне было интересно, есть ли способ управления расположением выходной папки с помощью инфраструктуры модульных тестов Visual Studio, возможно, используя метод инициализации в каждом классе тестов, чтобы любые добавленные новые тесты автоматически получали свою собственную папку вывода без необходимости копирования / вставки шаблонного кода?

Ответы [ 2 ]

0 голосов
/ 12 апреля 2010

Я закончил этим:

    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 голосов
/ 09 апреля 2010

Вы меня немного угадываете: это зависит от того, что вы хотите сделать с выводом? Если выходные данные представляют собой TestResult.xml, который анализируется CruiseControl, зачем вам их несколько?

[Изменить]

Возможно, вы сможете отслеживать папки, имея группы тестов в классе и настраивая выходную папку в [TestFixtureSetup]?

[редактировать]

Вы должны использовать тестовый фреймворк, такой как NUnit, я полагаю, вы знакомы с этим.

Чем для конкретного тестового класса вы могли бы заниматься:

[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
    }
...