【问题标题】:Is there a way to execute initializer code before each test in Visual Studio Unit Testing (MSTest) for all tests in a project?有没有办法在 Visual Studio 单元测试 (MSTest) 中的每个测试之前为项目中的所有测试执行初始化程序代码?
【发布时间】:2010-07-15 18:59:12
【问题描述】:

我有一个包含 20 多个 .cs 文件的单元测试项目。我想在每个单独的测试之前运行一些设置代码。有点像 [TestInitialize] 属性的工作方式。但是,我需要将该属性放在所有 20 多个 .cs 文件中。

有没有一种方法可以将整个项目中的每个测试的初始化代码集中在一个地方?

谢谢!

-迈克

【问题讨论】:

    标签: .net visual-studio unit-testing mstest


    【解决方案1】:

    Mike 唯一的引导钩子是 [ClassInitialize] 和 [TestInitialize] 以及它们的拆卸对应物。在这种情况下,我只是将通用逻辑外部化到它自己的类中,基本上遵循正常的 DRY 和 SoC 实践。通常,我在我的测试程序集中定义了几个服务和提供程序,而 xInitialize 方法只有 1 或 2 行代码来调用适当的提供程序。话虽如此,mpistrich 的回答也完全可以接受,我更喜欢分层而不是继承。

    【讨论】:

      【解决方案2】:

      我不知道这是否仍然是一个问题。但我发现另一种解决方案可以实现这一点: 打开 .testsettings 文件时,进入“设置和清理脚本”选项卡,您可以指定在测试运行之前和之后运行的脚本。

      【讨论】:

        猜你喜欢
        • 2016-10-18
        • 2021-09-11
        • 2011-10-04
        • 2016-02-06
        • 2018-09-02
        • 2020-09-06
        • 1970-01-01
        • 2021-08-23
        • 1970-01-01
        相关资源
        最近更新 更多