Получение QUnit для запуска тестов по порядку - PullRequest
8 голосов
/ 27 марта 2012

Я использовал qunit для написания серии тестов для кода JavaScript, который у меня есть.Прямо сейчас по какой-то причине будет запущен первый тест в моем списке, а затем будет запущен тест LAST в списке, за которым следуют 2-й до последнего, 3-й до последнего, 4-й до последнего и т. Д.все работает в том порядке, в котором они у меня есть. Я попытался отключить эту опцию, когда qunit запускает тесты, которые в прошлый раз были неудачными, но он все еще делает это.Есть ли способ исправить это?

Ответы [ 2 ]

11 голосов
/ 27 марта 2012

Сначала выясните, почему ваши тесты ДОЛЖНЫ выполняться в определенном порядке. Весь смысл модульного тестирования заключается в том, что тесты являются атомарными, и их можно запускать в любом порядке - если ваш набор тестов не способен на это, вам нужно выяснить, почему, поскольку это может представлять большую проблему.

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

edit : нашел эту ссылку на http://www.educatedguesswork.org/2011/06/curse_you_qunit_1.html. Очевидно, добавление этой ссылки в ваш набор тестов поможет QUnit.config.reorder = false;

0 голосов
/ 01 апреля 2012

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

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

...