首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >每个文本夹具不调用安装程序一次的单元

每个文本夹具不调用安装程序一次的单元
EN

Stack Overflow用户
提问于 2018-01-09 15:23:39
回答 2查看 2.7K关注 0票数 4

我是新的单位,并试图运行2个测试夹具,A& B。在每个夹具,我有一个独特的设置方法为每个。但是,当我在Visual中的“”中单击"Run“时,就会调用夹具A的测试设置(首先执行它),而忽略了first的设置。在通过命令行运行所有测试时,我也会得到相同的行为。下面是我的代码:

夹具A

代码语言:javascript
复制
[TestFixture]
public class A
{      
        [SetUp]
        public void SetupTest()
        {
            // ...Setup for Fixture A
        }                

        [Test, Order(1)]
        public void TestForFixtureA()
        {
            // ...perform test
        }
}

夹具B

代码语言:javascript
复制
[TestFixture]
public class B
{      
        [SetUp]
        public void SetupTest()
        {
            // ...Setup for Fixture B
        }                

        [Test]
        public void TestForFixtureB()
        {
            // ...perform test
        }
}

获得安装方法以执行每个夹具的正确方法是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-01-09 15:33:43

您在测试夹具级别使用了不正确的设置属性。您应该使用的属性是[SetUpFixture]。有关这方面的信息可在nunit文档中找到。

下面是从文献资料获取的所有设置属性及其用法的列表:

  • SetUpAttribute现在专门用于每个测试设置。
  • TearDownAttribute现在只用于每次测试的拆卸。
  • OneTimeSetUpAttribute用于每次测试运行一次设置.如果运行n个测试,此事件将只发生一次。
  • OneTimeTearDownAttribute用于每次测试运行一次拆卸.如果运行n个测试,此事件将只发生一次。
  • 与以前一样,SetUpFixtureAttribute继续使用,但方法属性已更改。

这似乎不能解释您所看到的bizzare行为,因为安装程序应该在每个测试中运行,但是使用正确的属性不会有什么影响。

票数 6
EN

Stack Overflow用户

发布于 2018-01-09 19:02:03

如果您打算在每个夹具上运行一次安装程序,请使用[OneTimeSetUp]。但是,如果您打算在夹具中每个测试运行一次,那么[SetUp]是正确的。我们无法从代码中看出你的意图。

无论你用哪一个,设置都应该运行。[OneTimeSetUp]将运行但[SetUp]不会运行的唯一情况是在夹具中找不到单独的测试。所有的测试都被识别了吗?

我建议您非常清楚地验证安装程序是否正在运行。最简单的方法是临时从安装方法中创建一些输出。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48171415

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档