Я использую модуль casper tester, и у меня была такая структура:
casper.start();
...(various then() and wait() calls)
casper.then(function(){
test.done();
});
casper.run();
Выполнение этого таким образом, казалось, работало нормально (за исключением прерывистой проблемы с таймером, которую я пытался устранить).
Если я изменю приведенное выше, следующее, что показано в документах casper, и я думал, что это в основном одно и то же:
casper.start();
...(various then() and wait() calls)
casper.run(function(){
test.done();
});
затем я получаю «ПРЕДУПРЕЖДЕНИЕ. Похоже, вы не проводили никаких тестов». Я понял, что это потому, что у меня еще не было assert()
звонков! Я добавил необоснованное утверждение, и предупреждение исчезло, и теперь я начинаю получать отчет о количестве выполненных тестов и т. Д. (Проблема прерывистого таймера остается, так что это должно быть что-то еще.)
Но это заставило меня понять, что я должен был сделать это вторым способом, и что, очевидно, есть разница.
Может кто-нибудь объяснить, в чем разница, и почему первый не работал правильно? Я надеюсь, что это приведет к более глубокому пониманию того, как работают тесты CasperJS!
test.done()
должно быть выполнено в функцииrun()
, и вы должны определить хотя бы одно утверждение). Чего я до сих пор не понимаю, так это почему это важно :-) - person Darren Cook   schedule 04.09.2014