Поиск…
замечания
Nightwatch предоставляет приемные и сквозные тесты для приложений Meteor с v0.5 дней и управляет миграциями от PHP до Spark to Blaze и React; и все основные платформы непрерывной интеграции. Дополнительную помощь можно найти в:
Документация API Nightwatch
Группа пользователей Nightwatch.js Google
конфигурация
Основная причина, по которой Nightwatch настолько мощная, из-за этого отличный файл конфигурации. В отличие от большинства других платформ тестирования, Nightwatch полностью настраивается и настраивается в разных средах и технологиях.
.meteor / nightwatch.json
Следующий файл конфигурация для Метеора v1.3 и позже, а также поддерживает две среду ... а по default
среду , которая запускает chromedriver браузер, и phantom
среду , которая проходит испытания в обезглавленной среде.
{
"nightwatch": {
"version": "0.9.8"
},
"src_folders": [
"./tests/nightwatch/walkthroughs"
],
"custom_commands_path": [
"./tests/nightwatch/commands"
],
"custom_assertions_path": [
"./tests/nightwatch/assertions"
],
"output_folder": "./tests/nightwatch/reports",
"page_objects_path": "./tests/nightwatch/pages",
"globals_path": "./tests/nightwatch/globals.json",
"selenium": {
"start_process": true,
"server_path": "./node_modules/starrynight/node_modules/selenium-server-standalone-jar/jar/selenium-server-standalone-2.45.0.jar",
"log_path": "tests/nightwatch/logs",
"host": "127.0.0.1",
"port": 4444,
"cli_args": {
"webdriver.chrome.driver": "./node_modules/starrynight/node_modules/chromedriver/bin/chromedriver"
}
},
"test_settings": {
"default": {
"launch_url": "http://localhost:5000",
"selenium_host": "127.0.0.1",
"selenium_port": 4444,
"pathname": "/wd/hub",
"silent": true,
"disable_colors": false,
"firefox_profile": false,
"ie_driver": "",
"screenshots": {
"enabled": false,
"path": "./tests/nightwatch/screenshots"
},
"desiredCapabilities": {
"browserName": "chrome",
"javascriptEnabled": true,
"acceptSslCerts": true,
"loggingPrefs": {
"browser": "ALL"
}
},
"exclude": "./tests/nightwatch/unittests/*",
"persist_globals": true,
"detailed_output": false
},
"phantom": {
"desiredCapabilities": {
"browserName": "phantomjs",
"javascriptEnabled": true,
"databaseEnabled": false,
"locationContextEnabled": false,
"applicationCacheEnabled": false,
"browserConnectionEnabled": false,
"webStorageEnabled": false,
"acceptSslCerts": true,
"rotatable": false,
"nativeEvents": false,
"phantomjs.binary.path": "./node_modules/starrynight/node_modules/phantomjs-prebuilt/bin/phantomjs"
}
},
"unittests": {
"selenium": {
"start_process": false,
"start_session": false
},
"filter": "./tests/nightwatch/unittests/*",
"exclude": ""
}
}
}
Установка и использование
Чтобы получить работу Nightwatch, вам понадобится локальная копия селена, которая является сервером управления и управления, который управляет автоматическими экземплярами браузера. Вам также понадобится веб-браузер, который может управлять селеном, например, хромированный или фантомный .
Добавьте в свой пакет package.json
следующие devDependencies:
{
"devDependencies": {
"nightwatch": "0.9.8",
"selenium-server-standalone-jar": "2.45.0",
"chromedriver": "2.19.0",
"phantomjs-prebuilt": "2.1.12"
}
}
Затем установите все параметры.
cd myapp
meteor npm install
Затем вы можете запустить Nightwatch со следующими командами:
nightwatch -c .meteor/nightwatch.json
nightwatch -c .meteor/nightwatch.json --env phantom
Если вы еще не написали никаких тестов или не настроили структуру своей папки, вы можете получить некоторые ошибки.
Настройка сценариев запуска
В корне вашего приложения должен быть файл package.json
, где вы можете определить скрипты и devDependencies.
{
"name": "myapp",
"version": "1.0.0",
"scripts": {
"start": "meteor --settings settings-development.json",
"nightwatch": "nightwatch -c .meteor/nightwatch.json",
"phantom": "nightwatch -c .meteor/nightwatch.json --env phantom",
}
}
Затем вы сможете запустить ночной со следующим командам:
meteor npm run-script nightwatch
meteor npm run-script phantom
В этом примере было бы проще просто запустить nightwatch -c .meteor/nightwatch.json
. Однако, с более сложными командами, со сложными переменными среды, параметрами и настройками, это становится очень полезным способом для определения сценариев devops для команды.
Структура папок
В базовой установке Nightwatch для Meteor будут установлены следующие каталоги и файлы.
/myapp
/myapp/.meteor/nightwatch.json
/client/main.html
/client/main.js
/client/main.css
/tests
/tests/nightwatch
/tests/nightwatch/assertions
/tests/nightwatch/commands
/tests/nightwatch/data
/tests/nightwatch/logs
/tests/nightwatch/pages
/tests/nightwatch/reports
/tests/nightwatch/screenshots
/tests/nightwatch/walkthroughs
/tests/nightwatch/walkthroughs/critical_path.js
/tests/nightwatch/globals.json
Тестирование данных
Nightwatch принимает второй globals.json
конфигурации globals.json
который вводит данные в сам тестовый бегун, очень похожий на то, как Meteor.settings
делает данные из командной строки доступными во всем приложении.
globals.json
{
"default" : {
"url" : "http://localhost:3000",
"user": {
"name": "Jane Doe",
"username" : "janedoe",
"password" : "janedoe123",
"email" : "[email protected]",
"userId": null
}
},
"circle" : {
"url" : "http://localhost:3000",
"user": {
"name": "Jane Doe",
"username" : "janedoe",
"password" : "janedoe123",
"email" : "[email protected]"
"userId": null
}
},
"galaxy" : {
"url" : "http://myapp.meteorapp.com",
"user": {
"name": "Jane Doe",
"username" : "janedoe",
"password" : "janedoe123",
"email" : "[email protected]"
"userId": null
}
}
}
Затем вы можете написать свои тесты, которые не жестко закодированы конкретными пользователями, паролями, входами поиска и т. Д.
module.exports = {
"Login App" : function (client) {
client
.url(client.globals.url)
.login(client.globals.user.email, client.globals.user.password)
.end();
}
};