Общие модульные тесты с MSTest - PullRequest
2 голосов
/ 10 октября 2011

У меня примерно 5-6 отчетов, они структурированы одинаково, используя Watin, я тестирую каждый из этих отчетов.

У меня есть общий тест, я называю «ReportBaseTests» ..

    public class ReportBaseTests
    {
        public string MenuName { get; set; }

        public ReportBaseTests(string name)
        { this.MenuName = name; }

        [TestMethod]
        public void Perform_Invalid_Date_Range()
        {
        }
    }

но в каждом из моих тестов у меня есть ...

    [TestClass]
    public class Report1Tests : ReportBaseTests
    {
        public Report1Tests()
            : base("Report 1")
        { }
    }

Это работает ... у каждого отчета будет отдельный Perform_Invalid_date_range, и он пойдет на другую страницу ... Я надеялся, что у кого-то есть лучший способ сделать это, так как он также создает отдельный "неработающий" тест для общего теста, так как я не включил [TestClass]

Теперь я знаю, что мог бы использовать NUnit и передавать аргументы, однако сейчас я придерживаюсь MSTest

1 Ответ

3 голосов
/ 10 октября 2011

Если вы хотите, вы можете добавить TestContext support к вашим тестам и сделать так, чтобы ReportBaseTests.Perform_Invalid_Date_Range () анализировал TestContext.FullyQualifiedTestClassName .Для простого теста я думаю, что это слишком.

Для вашего решения: просто установите атрибут [TestClass] на ReportBaseTests, а затем пометьте ReportBaseTests как abstract.«Нерабочие» тесты исчезнут.

...