与 MSTest 共享单元测试

发布于 2024-12-09 05:49:57 字数 731 浏览 1 评论 0原文

我有大约 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

I have approximately 5-6 reports, they are structured the same, using Watin, I'm testing each one of these reports.

I have a shared test, I call "ReportBaseTests"..

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

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

        [TestMethod]
        public void Perform_Invalid_Date_Range()
        {
        }
    }

but in each of my tests, I have...

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

This works... each report will have a seperate Perform_Invalid_date_range, and it'll goto a different page... I was hoping someone had a better way to do this, as it also produces a seperate "non-runnable" test for the shared test since I didn't include the [TestClass]

Now, I know I could use NUnit and pass in arguments, however, I'm sticking with MSTest for the time being

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

病毒体 2024-12-16 05:49:57

如果您愿意,可以将 TestContext 支持 添加到您的测试中,并获得ReportBaseTests.Perform_Invalid_Date_Range() 解析 TestContext.FullyQualifiedTestClassName。对于一个简单的测试,我认为这已经过时了。

对于您的解决方案:只需将 [TestClass] 属性放在 ReportBaseTests 上,然后将 ReportBaseTests 标记为 abstract。 “不可运行”的测试将消失。

If you wanted, you could add TestContext support to your tests and have the ReportBaseTests.Perform_Invalid_Date_Range() parse the TestContext.FullyQualifiedTestClassName. For a simple test I think that's over kill.

For your solution: just put the [TestClass] attribute on ReportBaseTests and then mark ReportBaseTests as abstract. The "non-runnable" tests will disappear.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文