Должен ли я смешать мои UnitTests и мои интеграционные тесты в одном проекте? - PullRequest
9 голосов
/ 16 декабря 2008

Я использую NUnit для тестирования своего кода на C # и до сих пор храню модульные (быстродействующие) и интеграционные (более длительные) отдельные и в отдельных файлах проекта. Я использую NUnit для выполнения модульных и интеграционных тестов. Я только что заметил атрибут category , который предоставляет NUnit, чтобы тесты можно было классифицировать. Возникает вопрос: стоит ли смешивать их вместе и просто использовать атрибут категории, чтобы различать их?

Ответы [ 6 ]

7 голосов
/ 16 декабря 2008

если их не сложно разделить, сделайте это сейчас

модульные тесты следует запускать рано и часто (например, каждый раз, когда вы что-то меняете, до регистрации, после регистрации) и должны выполняться за короткий промежуток времени.

интеграционные тесты следует запускать периодически (например, ежедневно), но для их завершения может потребоваться значительное время и ресурсы

поэтому лучше хранить их отдельно

1 голос
/ 16 декабря 2008

разделяйте их, если это возможно, потому что тесты интеграции обычно занимают гораздо больше времени, чем UnitTests. Возможно, ваш проект развивается, и у вас очень много тестов, все из которых занимают короткое время, кроме интеграционных тестов, и вы хотите запускать свои тесты UnitTests как можно чаще ...

1 голос
/ 16 декабря 2008

Я считаю, что использование отдельных проектов для модульного тестирования и интеграционных тестов приводит к созданию слишком большого количества артефактов верхнего уровня в проектах. Несмотря на то, что мы TDD и все такое, я все же думаю, что разрабатываемый код должен заслуживать как минимум половину верхнего уровня структуры моего проекта.

0 голосов
/ 19 декабря 2008

Первоначальной мотивацией для [Категория] было решение упомянутой вами проблемы. Он также был предназначен для создания более широких наборов тестов, но это то, что вы делаете.

Будьте осторожны с [Категория]. Не все тестовые программы поддерживают его так же, как графический интерфейс NUnit (или я его не обновлял некоторое время) В прошлом некоторые бегуны игнорировали атрибут, если он был в самом классе, или просто игнорировали все вместе. Большинство, кажется, работает сейчас.

0 голосов
/ 16 декабря 2008

Я не думаю, что это действительно так важно, но разделение их звучит как лучшая идея, так как изоляция и автоматизация будут намного проще. И функция категории хороша, но не так хороша с точки зрения удобства использования.

0 голосов
/ 16 декабря 2008

Я бы придерживался любого метода, который вы сейчас используете. Это скорее вопрос мнения, и вам не захочется заново использовать весь метод тестирования.

...