我想將量角器與由Yeoman生產的腳手架集成。我跟着一個教程,其中,舊版本scenario-runner
用於設置e2e測試(通過grunt
)。通過Grunt集成量角器與Yeoman
我想升級我的腳手架並改用Protractor。
有什麼想法?
我想將量角器與由Yeoman生產的腳手架集成。我跟着一個教程,其中,舊版本scenario-runner
用於設置e2e測試(通過grunt
)。通過Grunt集成量角器與Yeoman
我想升級我的腳手架並改用Protractor。
有什麼想法?
從npm
安裝protractor
和grunt-protractor-runner
:
npm install protractor grunt-protractor-runner --save-dev
創建量角器(protractor.conf.js
)一個配置文件,更改specs
和baseUrl
到您的測試文件和測試服務器:
exports.config = {
seleniumAddress: 'http://localhost:4444/wd/hub',
specs: ['test/e2e/*_test.js'],
baseUrl: 'http://localhost:9001' //default test port with Yeoman
}
更新您的Gruntfile.js
,添加以下的業力任務後:
protractor: {
options: {
keepAlive: true,
configFile: "protractor.conf.js"
},
run: {}
}
添加量角器任務下測試
grunt.registerTask('test', [
'clean:server',
'concurrent:test',
'autoprefixer',
'connect:test',
'karma',
'protractor:run'
]);
下載並啓動硒服務器:
node_modules/protractor/bin/webdriver-manager update
node_modules/protractor/bin/webdriver-manager start
(在Windows中: )
node node_modules/protractor/bin/webdriver-manager update
node node_modules/protractor/bin/webdriver-manager start
更新您的package.json
,在"devDependencies"
後添加以下內容。這將在npm install
之後運行該命令,因此您不必每次都記住。
"scripts": {
"install": "node node_modules/protractor/bin/webdriver-manager update"
}
使用咕嚕運行測試
grunt test
如果你想量角器爲您啓動服務器,刪除
seleniumAddress: 'http://localhost:4444/wd/hub',
從protractor.conf.js
,然後運行grunt test
將啓動測試過程中的獨立硒實例,在runni之後退出測試套件。
簽出Matt Briggs的[grunt-start-webdriver] [(https://github.com/mbriggs/grunt-start-webdriver/blob/master/README.md)任務。這個咕task任務執行'webdriver-manager start',阻止咕嚕聲,直到webdriver準備好接受連接。 –
@SteveJansen很好,事實上,如果你不在量角器配置文件中指定seleniumAddress選項,量角器將自動啓動服務器,前提是你之前運行過webdriver-manager更新。 – user2172816
我還必須在'grunt.registerTask'上面添加grunt.loadNpmTasks(「grunt-protractor-runner」)' – 2014-06-03 14:43:21
有一件事要添加到現有的答案;如果您想自動啓動Selenium服務器,則還必須指定seleniumServerJar和chromeDriver(如果使用Chrome)的位置,否則只有在手動啓動Selenium服務器之前,測試纔會起作用(請確保運行「webdriver-經理更新」命令行在前):
protractor: {
options: {
keepAlive: false,
configFile: "test/config/protractor.conf.js",
noColor: true, // If true, protractor will not use colors in its output.
args: {
seleniumServerJar: 'node_modules/protractor/selenium/selenium-server-standalone-2.39.0.jar',
chromeDriver: 'node_modules/protractor/selenium/chromedriver.exe'
}
},
run: {
}
},
我不需要在我的機器上執行此操作。也許是Windows的東西? –
是的,我正在使用Windows,沒有上述,服務器不會自動啓動。一旦添加,一切正常。 –
@AlwaysLearning你知道mac的兩個'args'的文件路徑嗎? – Danger14
由於@user2172816提到了自己的答案 - 從你的量角器配置離開了seleniumAddress: 'http://localhost:4444/wd/hub'
通常會導致量角器啓動硒實例爲您服務。
作爲替代方案,你可以使用grunt-protractor-webdriver啓動硒:
1)安裝並保存咕嚕,量角器,webdriver的
npm install grunt-protractor-webdriver --save-dev
2)添加以下到您的咕嚕定義功能:
grunt.loadNpmTasks('grunt-protractor-webdriver');
3)添加以下內容比如量角器webdriver的任務:
protractor_webdriver: {
start: {
options: {
path: 'node_modules/protractor/bin/',
command: 'webdriver-manager start'
}
}
}
4)運行量角器例如之前添加protractor_webdriver
您test
任務
grunt.registerTask('test', [
'clean:server',
'concurrent:test',
'autoprefixer',
'connect:test',
'karma',
'protractor_webdriver',
'protractor:run'
]);
添加像量角器的入門指南配置文件與說明文件的位置說,然後安裝量角器是要走的路。或者你可以檢查linemanjs這就像yeoman和量角器內置:) –
對於AngularJs yeoman是好的,我認爲是因爲它是與建立也是BT他是使用業力e2e測試,我想要使用量角器如何可以集成量角器在yeoman的gruntjs文件中 – user2733090