В чем разница, если используется атрибут TestFixture или нет

Я не вижу различий в поведении для класса, у которого есть атрибут TestFixture а не. Все TearDown и SetUp работают одинаково. Есть ли какая-либо причина, кроме семантики для использования этого атрибута?

Ответ 1

Это просто удобство, начиная с NUnit 2.5, если класс удовлетворяет условиям, которые являются тестовым прибором, и указывает, по крайней мере, метод, помеченный Test, TestCase или TestCaseSource чем этот класс, рассматривается как тестовое устройство.

TestFixture требуется, однако, для параметризованного или общего теста, потому что в этом случае вы также указываете дополнительную информацию через атрибут (параметры/конкретные типы).

Дополнительная информация о конкретных требованиях доступна в TextFixtureAttribute (Документация NUnit 3) и TestFixtureAttribute (NUnit 2.0/2.5)

Ответ 2

Если вы используете [TestFixture], вам приходится мириться с этим голосом в задней части головы, говоря: "Хм, это тестовый класс, а не тест-тест", и задаться вопросом, как они ошиблись в этой аннотации.

См. Почему testFixture вместо testClass.