Когда я запускаю тесты в Junit, их заказ не гарантируется. По умолчанию specs2 запускает параллельные примеры, поэтому заказ не гарантируется здесь. Однако, если я добавляю ключевое слово sequential, тесты выполняются (по крайней мере, из того, что кажется) в порядке. Есть ли способ получить последовательное поведение, но примеры выполняются в случайном порядке?Specs2 последовательное ключевое слово
2
A
ответ
0
Как насчет украшения или упаковки тестовых примеров с кодом, который получает блокировку в начале каждого тестового примера? Хакки, возможно, но должны работать надежно и легко реализовать, пока/если вы не найдете более подходящую альтернативу.
2
Вы можете использовать последнюю версию specs2 2,3-SNAPSHOT с random
аргументом командной строки (или args.execute(random=true)
внутри спецификации):
class TestSpec extends Specification { def is = s2"""
test1 $e1
test2 $e2
test3 $e3
"""
def e1 = { "starting e1".pp; Thread.sleep(30); "e1".pp; ok }
def e2 = { "starting e2".pp; Thread.sleep(20); "e2".pp; ok }
def e3 = { "starting e3".pp; Thread.sleep(40); "e3".pp; ok }
}
sbt> testOnly *TestSpec* -- random
starting e3
e3
starting e2
e2
starting e1
e1
[info] TestSpec
[info]
[info] + test1
[info] + test2
[info] + test3
[info]
Смежные вопросы
- 1. ключевое слово синхронизации и волатильное ключевое слово
- 2. Javascript использует ключевое слово var ключевое слово?
- 3. regex удалить совпадающее слово и последовательное слово
- 4. ключевое слово python continue переключает управление на ключевое слово finally
- 5. Ошибка: «неожиданное ключевое слово else, ожидаемое ключевое слово end»?
- 6. Javascript: Имея «Var» ключевое слово перед «этим» ключевое слово
- 7. svn определяемое пользователем ключевое слово ключевое слово расширение/замена
- 8. Ключевое слово «наследует» не допускается, если ключевое слово «модель» используется
- 9. Ключевое слово exec SQL
- 10. Java новое ключевое слово
- 11. C# переопределить ключевое слово
- 12. Ключевое слово не поддерживается
- 13. ruby неожиданное ключевое слово
- 14. Неустойчивое ключевое слово - MSP430
- 15. «Использует» ключевое слово C#?
- 16. andthen Оз ключевое слово
- 17. Javascript 'arguments' Ключевое слово
- 18. Тип "this" ключевое слово?
- 19. Ключевое слово Mysql IN
- 20. Q_DECL_EXPORT ключевое слово означает
- 21. Отсутствует Выбрать Ключевое слово
- 22. Java летучий ключевое слово
- 23. ключевое слово селектора
- 24. Ключевое слово Firebase устарело
- 25. C# ref ключевое слово
- 26. Свинья: ключевое слово FLATTEN
- 27. Уплотненный синхронизированы ключевое слово
- 28. Ключевое слово Аргументы/Словари
- 29. MySQL NEW ключевое слово
- 30. using volatile ключевое слово
Я интересно, если библиотека предлагает что-то вроде этого не так, как это сделать Это. – netta
В этом нет никакого средства в specs2, но я мог бы добавить «крючок» к бегуну sbt, чтобы вы могли работать с любым «репортером». Затем вы можете переопределить черту 'ExecutionStrategy', которая выполняет примеры, чтобы они выполнялись случайным образом. Другой подход заключается в том, чтобы вы могли генерировать тесты из метода, который бы скремблировал их при каждом запуске. – Eric
Дело в том, что я хочу создать стандарт, потому что я не хочу, чтобы разработчики писали тесты, зависящие от порядка. Было бы неплохо, если бы существовало ключевое слово, подобное последовательному, где тесты выполнялись один раз, но не в определенном порядке (например, в junit). – netta