【问题标题】:What is the difference if TestFixture attribute is used or not是否使用 TestFixture 属性有什么区别
【发布时间】:2026-01-14 04:30:01
【问题描述】:

我看不出具有TestFixture 属性的类的行为有什么不同。所有TearDownSetUp 都以相同的方式工作。这个属性的使用除了语义之外还有其他原因吗?

【问题讨论】:

  • 有趣的问题。 NUnit 似乎可以识别没有该属性的固定装置并正确运行它们。

标签: unit-testing nunit installation


【解决方案1】:

纯粹是为了方便,从 NUnit 2.5 开始,如果一个类满足成为测试夹具的条件并指定至少一个标有 TestTestCaseTestCaseSource 的方法,那么该类将被视为测试夹具。

TestFixture 属性对于参数化或通用测试夹具是必需的,因为在这种情况下,您还可以通过属性(参数/具体类型)指定其他信息。

有关具体要求的更多信息,请访问TextFixtureAttribute (NUnit 3 Documentation)TestFixtureAttribute (NUnit 2.0 / 2.5)

【讨论】:

    【解决方案2】:

    如果您使用[TestFixture],您必须忍受脑后那个声音说“嗯,这是一个测试课程,而不是真正的测试fixture”,并想知道他们是如何这个注释记错了。

    Why testFixture instead of testClass

    【讨论】:

    • 加一个让我在 [TestFixture] 测试工作一整天后让我发笑。