use*_*090 41 angularjs gruntjs protractor e2e-testing
我想将Protractor与Yeoman生产的脚手架相结合.我按照教程进行操作,其中旧版本scenario-runner用于设置e2e测试(通过grunt).
我想升级我的脚手架并改用Protractor.
有什么想法吗?
小智 85
安装protractor和grunt-protractor-runner来自npm:
npm install protractor grunt-protractor-runner --save-dev
Run Code Online (Sandbox Code Playgroud)创建量角器(配置文件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
}
Run Code Online (Sandbox Code Playgroud)更新你的Gruntfile.js,在业力任务后添加以下内容:
protractor: {
options: {
keepAlive: true,
configFile: "protractor.conf.js"
},
run: {}
}
Run Code Online (Sandbox Code Playgroud)添加测试中的量角器任务
grunt.registerTask('test', [
'clean:server',
'concurrent:test',
'autoprefixer',
'connect:test',
'karma',
'protractor:run'
]);
Run Code Online (Sandbox Code Playgroud)下载并启动selenium服务器:
node_modules/protractor/bin/webdriver-manager update
node_modules/protractor/bin/webdriver-manager start
Run Code Online (Sandbox Code Playgroud)
(在Windows中:)
node node_modules/protractor/bin/webdriver-manager update
node node_modules/protractor/bin/webdriver-manager start
Run Code Online (Sandbox Code Playgroud)更新你的package.json,之后添加以下内容"devDependencies".这将在之后运行命令,npm install因此您不需要每次都记住.
"scripts": {
"install": "node node_modules/protractor/bin/webdriver-manager update"
}
Run Code Online (Sandbox Code Playgroud)使用grunt运行测试
grunt test
Run Code Online (Sandbox Code Playgroud)如果您希望量角器为您启动服务器,请删除
seleniumAddress: 'http://localhost:4444/wd/hub',
Run Code Online (Sandbox Code Playgroud)
from protractor.conf.js,然后运行grunt test将在测试期间启动一个独立的selenium实例,并在运行测试套件后退出它.
Alw*_*ing 10
添加到现有答案的一件事情; 如果你想自动启动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: {
}
},
Run Code Online (Sandbox Code Playgroud)
正如@ user2172816在他们的回答中提到的 - seleniumAddress: 'http://localhost:4444/wd/hub'从量角器配置中退出通常会导致Protractor为您启动Selenium实例.
作为替代方案,您可以使用grunt-protractor-webdriver启动Selenium:
1)安装并保存grunt-protractor-webdriver
npm install grunt-protractor-webdriver --save-dev
Run Code Online (Sandbox Code Playgroud)
2)将以下内容添加到您的Grunt定义函数中:
grunt.loadNpmTasks('grunt-protractor-webdriver');
Run Code Online (Sandbox Code Playgroud)
3)添加以下示例量角器webdriver任务:
protractor_webdriver: {
start: {
options: {
path: 'node_modules/protractor/bin/',
command: 'webdriver-manager start'
}
}
}
Run Code Online (Sandbox Code Playgroud)
4)在运行量角器之前添加protractor_webdriver到您的test任务中
grunt.registerTask('test', [
'clean:server',
'concurrent:test',
'autoprefixer',
'connect:test',
'karma',
'protractor_webdriver',
'protractor:run'
]);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14894 次 |
| 最近记录: |