Я ищу использовать Транспортир, CucumberJS и Жасмин для тестирования моего проекта. Как использовать Jasmine и CucumberJS с помощью Protractor? Вот проект установки я создал:Как использовать Jasmine и CucumberJS с транспортиром
/путь/к/MYPROJ/protractor.conf.js
exports.config = {
seleniumServerJar: 'node_modules/protractor/selenium/selenium-server-standalone-2.45.0.jar',
specs: [
'features/*.feature'
],
baseUrl: 'http://localhost:8080',
multiCapabilities: [
{
'browserName': 'chrome'
}
],
allScriptsTimeout: 380000,
getPageTimeout: 20000,
framework: 'cucumber',
cucumberOpts: {
require: 'features/stepDefinitions.js',
format: 'summary'
}
};
Как вы можете видеть, этот проект использует "огурец" в качестве основы. Как добавить в систему Jasmine вместе с CucumberJS? Будет ли это через конфигурационный файл Protractor или где-нибудь еще в коде?
/путь/к/MYPROJ/функции/demo.feature
Feature: Some terse yet descriptive text of what is desired
Scenario: Some determinable business situation
Given some precondition
/путь/к/MYPROJ/функции/stepDefinitions.js
module.exports = function() {
this.Given(/^some precondition$/, function (callback) {
expect(true).toEqual(true);
callback();
});
};
Когда это выполнено , «ожидание» не определено, по-видимому, потому, что Жасмин не был интегрирован, и он ожидает глобального вместе с ним. Вот сообщение полной ошибки:
$ $(npm bin)/protractor protractor.conf.js
Starting selenium standalone server...
[launcher] Running 1 instances of WebDriver
Selenium standalone server started at http://192.168.1.115:59957/wd/hub
(::) failed steps (::)
ReferenceError: expect is not defined
at World.<anonymous> (/path/to/myproj/features/stepDefinitions.js:3:5)
at process._tickCallback (node.js:355:11)
Failing scenarios:
/path/to/myproj/features/demo.feature:3 # Scenario: Some determinable business situation
1 scenario (1 failed)
1 step (1 failed)
Shutting down selenium standalone server.
[launcher] 0 instance(s) of WebDriver still running
[launcher] chrome #1 failed 1 test(s)
[launcher] overall: 1 failed spec(s)
[launcher] Process exited with error code 1
/путь/к/MYPROJ/package.json
{
"name": "myproj",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"devDependencies": {
"cucumber": "0.4.9",
"protractor": "git+https://github.com/angular/protractor.git#0262268fa43b9eefac815d986740efa07bb15818"
}
}
Примечание: Я использую конкретную фиксацию в хранилище транспортира Git в моем пакете. json, потому что последняя версия (2.1.0) имеет a bug, что предотвращает интеграцию с CucumberJS.
Mocha является система тестирования, которая позволяет использовать любой модуль ожидания, в том числе Chai. Является ли это одной из причин того, что Mocha популярен как единый модуль тестирования, так что тот же модуль ожиданий, который используется для написания тестов Cucumber, также может использоваться для написания модульных тестов, что делает более согласованным код, основанный на тестовом коде?Спасибо за ваш ответ и за рекомендацию CukeFarm! –
@AristarkhArtemiy yep, это очень полезно, чтобы пойти на мокко. Используя те же шаблоны/синтаксис (например, chai) в ваших модульных тестах, и определения шага Огурца - это хорошо, особенно если другим людям приходится прыгать в кодовую базу. – jbpros
Можете ли вы рассказать о причинах, почему CucumberJS и Жасмин являются взаимоисключающими? Я пытаюсь интегрировать CucumberJs в транспортир для запуска тестов E2E. Если бы я мог это сделать, это было бы так приятно. Стек, который я использую: Angular2, webpack, .. –