我想将量角器与由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