Projemi test etmek için Protractor, CucumberJS ve Jasmine kullanmayı düşünüyorum. Hem Jasmine hem de CucumberJS'yi İletki ile birlikte nasıl kullanırım?Yasemin ve SalatalıkJS İletki ile birlikte nasıl kullanılır
// yol/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'
}
};
Gördüğünüz gibi bu proje çerçeve olarak "salatalık" kullanır: İşte oluşturduk proje tuzak. CucumberJS ile birlikte Jasmine çerçevesine nasıl eklerim? Bu, İletici yapılandırma dosyasında mı yoksa kodda başka bir yerde mi olacak?
/yol// myproj/özellikler/demo.feature
Feature: Some terse yet descriptive text of what is desired
Scenario: Some determinable business situation
Given some precondition
// yol/myproj/özellikler/stepDefinitions.js
module.exports = function() {
this.Given(/^some precondition$/, function (callback) {
expect(true).toEqual(true);
callback();
});
};
bu yürütüldüğü zaman
"Beklenti" tanımlanmamıştır, muhtemelen Jasmine entegre edilmemiştir ve bununla birlikte küresel olmasını beklemektedir. İşte tam hata mesajı yok:$ $(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
// yol/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"
}
}
Not: Belirli bir zaman pakete Açıölçer Git depo taahhüt kullanıyorum. json, çünkü en son sürüm (2.1.0), CucumberJS ile entegrasyonu engelleyen a bug'a sahiptir.
github bu projede göz at. Mocha'nın bir ünite test çerçevesi olarak popüler olmasının nedenlerinden biri de budur, bu nedenle, Hucrar testleri yazmak için kullanılan aynı beklenti modülü, test koduna dayanan daha tutarlı bir kod oluşturmak için birim testleri yazmak için de kullanılabilir mi?Cevabınız ve CukeFarm tavsiyesi için teşekkür ederiz! –
@AristarkhArtemiy yep, bu Mocha için gitmek için sebep çok iyi. Ünite testlerinizdeki aynı kalıpları/sözdizimini (örneğin chai ile) ve Salatalık adım tanımlarını kullanmak, özellikle de diğer insanlar kod tabanına atlamak zorundaysa iyi bir şeydir. – jbpros
CucumberJS ve Jasmine'in neden ayrıcalıklı olduğuna dair nedenleri açıklayabilir misiniz? E2E testlerini yürütmek için CucumberJs iletki içine entegre etmeye çalışıyorum. Eğer bu işi yapabilirsem, bu çok hoş olurdu. Yığını kullanıyorum: Angular2, webpack, .. –