PhantomJS "Невозможно найти переменную: require" при использовании PhantomJasmine
Я хотел бы использовать Phantomjs и Jasmine для модульного тестирования javascript. Веб-сайт Phantomjs рекомендует использовать отдельную вещь для обработки этого, в частности, PhantomJasmine. Я загрузил PhantomJasmine и запустил пример. Все прошло отлично. Затем я добавил строку var system = require('system');
в начало example_spec.js. Phantomjs теперь выдает ошибку, когда я пытаюсь запустить пример, я получаю "ReferenceError: не могу найти переменную: require". Итак, я хочу делать такие вещи, как запуск браузера, но похоже, что я не могу комбинировать синтаксис jasmine AND phantomjs. Я могу использовать только чистый jasmin, используя Phantomjs. Как использовать оба файла в одном файле? как:
console.log('Loading a web page');
var page = new WebPage();
var url = "http://www.phantomjs.org/";
page.open(url, function (status) {
//Page is loaded!
describe("A suite", function() {
it("contains spec with an expectation", function() {
expect(true).toBe(true);
});
});
phantom.exit();
});
Ответы
Ответ 1
Это не совсем так, как вы должны его использовать. Код для управления фантомами не должен быть запутан со спецификацией жасмина и наоборот.
Вы должны разделить свои спецификации на .js файлы и создать стандартную настройку жасмина с помощью бегуна спецификации HTML, который загружает файлы spec.js и открывает этот файл HTML в phantomjs.
Другим решением является использование grunt с phantomjs и жасмином для автоматического запуска спецификаций жасмина.
https://github.com/cowboy/grunt
https://github.com/creynders/grunt-jasmine-task