Я пытаюсь протестировать разные части «в основном» одностраничного приложения. Я хотел бы разделить тесты, но я действительно только хочу, чтобы загрузить страницу один раз, а затем испытания пройти и нажмите ссылки и т.д.Как правильно разбить тесты casperjs на общий экземпляр браузера
Вот мой код:
PRE.js
var port = require('system').env.PORT
var tester;
casper.options.viewportSize = {width: 1024, height: 768};
casper.test.begin('Test login', function suite(test) {
var done = false;
casper.on("page.error", function(msg, trace) {
this.echo("Error: " + msg, "ERROR");
this.echo("file: " + trace[0].file, "WARNING");
this.echo("line: " + trace[0].line, "WARNING");
this.echo("function: " + trace[0]["function"], "WARNING");
});
casper.on('remote.message', function(message) {
this.echo('remote message caught: ' + message);
if (message == "done") {
done = true;
}
});
casper.start('http://localhost:' + port, function() {
// Verify that the main menu links are present.
test.assertExists('input[name=username]');
// 10 articles should be listed.
test.assertElementCount('input', 3);
casper.fill("form", {
"username": "username",
"password": "my password goes right here you cant have it"
}, true);
casper.then(function() {
casper.waitFor(function(){
return done;
}, function(){
tester = casper.evaluate(function(){
return tester;
});
test.assert("undefined" != typeof tester);
test.assert(Object.keys(tester).length > 0);
});
});
});
casper.run(function() {
test.done();
});
});
, а затем у меня есть второй файл (и там будет много больше, как это): TEST.js
casper.test.assert(true);
casper.capture('.screenshot.png');
casper.test.done();
Я надеюсь, чтобы получить скриншот сессии браузера сюда m pre.js.
я запускаю его из специализированной программы, которая начинается мою программу, но по существу она работает:
casperjs test casper_tests --pre=pre.js
casper_tests держит оба файла выше
Мой вопрос:
Что это правильный путь сделать это? Не снимается скриншот и, возможно, более важно (хотя я еще не пробовал это делать), я хочу, чтобы можно было щелкнуть внутри и убедиться, что другие части работают. Снимок экрана просто проверяет, что я в правильном районе.
Что делать, если мы предполагаем, что тестовые случаи не должны быть отменены? (что я определенно понимаю, против обычной философии тестирования). Однако я буду играть с идеей include, но она все еще не поддерживает сеанс браузера. – silkcom
Да, это так. Это будет тот же сеанс, если вы не удалите файлы cookie. Каждый тестовый файл и тестовый файл запускаются на одном экземпляре phantomjs, и файлы cookie никогда не удаляются из самого касса. –
Извините, я имею в виду в том же экземпляре страницы браузера. Ему все равно придется перезагружать страницу между каждым тестом, в котором я пытаюсь найти способ избежать (существуют разные классы, и я бы хотел, чтобы каждый набор выполнялся в одной загрузке браузера) – silkcom