Javascript 角度4(弹出)和E2E测试(量角器/硒配置)
我正试图在弹出的Angular 4项目上通过量角器/Selenium运行E2E测试 MyJavascript 角度4(弹出)和E2E测试(量角器/硒配置),javascript,angular,testing,protractor,Javascript,Angular,Testing,Protractor,我正试图在弹出的Angular 4项目上通过量角器/Selenium运行E2E测试 Mypackage.json: ... "scripts": { "pree2e": "webdriver-manager update --standalone false --gecko false --quiet node", "e2e": "protractor ./protractor.conf.js" } ... My量角器.conf: exports.config = {
package.json
:
...
"scripts": {
"pree2e": "webdriver-manager update --standalone false --gecko false --quiet node",
"e2e": "protractor ./protractor.conf.js"
}
...
My量角器.conf
:
exports.config = {
seleniumAddress: 'http://localhost:4444/wd/hub',
directConnect: true,
allScriptsTimeout: 60000,
getPageTimeout: 60000,
specs: [
'./src/e2e/**/*.e2e-test.ts'
],
capabilities: {
'browserName': 'chrome'
},
jasmineNodeOpts: {
showColors: true,
defaultTimeoutInterval: 60000
},
onPrepare() {
require('ts-node').register({
project: 'tsconfig.e2e.json'
});
jasmine.getEnv().addReporter(new SpecReporter({
spec: {
displayStacktrace: true
}
}));
browser.driver.manage().timeouts().setScriptTimeout(60000);
}
};
运行
npm时,运行e2e
Chrome会启动,但每次测试都会尝试打开data:text/html,
,然后快速关闭。我错过了什么?我尝试将baseUrl
添加到我的grandor.conf
,但没有帮助,因为Selenium似乎还没有运行。我终于找到了解决问题的方法。我不知何故需要运行ngserve
,由于项目被弹出,现在可以通过npm run start
运行它。这是一个Travis CI部署(我极力推荐),因此请参阅脚本之前的:
before_script:
- nohup npm run start &
script:
- npm run build -aot --target=production --environment=prod
- npm run test
- npm run e2e
Finalpackage.json
(在ng弹出后保留默认值)
:
Finaldragrator.conf
(在ng弹出后保持默认值)
:
以下是当您弹出时发生的情况:
两天半的腰围。感谢您的团队解决了这个问题,真的,谢谢您。我终于找到了解决问题的方法。我不知何故需要运行ngserve
,由于项目被弹出,现在可以通过npm run start
运行它。这是一个Travis CI部署(我极力推荐),因此请参阅脚本之前的:
before_script:
- nohup npm run start &
script:
- npm run build -aot --target=production --environment=prod
- npm run test
- npm run e2e
Finalpackage.json
(在ng弹出后保留默认值)
:
Finaldragrator.conf
(在ng弹出后保持默认值)
:
以下是当您弹出时发生的情况:
两天半的腰围。感谢您的CLI团队解决此错误,真的,谢谢。您是否忘记指定应用程序baseUrl
?它在哪里运行?:)您必须在conf
文件中指定。例如,看看这个conf文件——这是一个很好的例子:)说真的,我不知道应该在那里指定什么?Selenium在哪里运行?如果我指定http://localhost:4444
它不起作用。您应该在配置中使用seleniumAddress
或directConnect
,但不能同时使用两者。您可以看到,当您提供selenium地址时,它会在您的系统中本地运行selenium服务器。为此,您需要单独安装selenium服务器,但如果使用directConnect
,则不需要安装selenium服务器,它将直接启动浏览器。在baseUrl
中提供应用程序url,现在使用directConnect
,请参见!。请参考此链接了解更多信息-您是否忘记指定应用程序baseUrl
?它在哪里运行?:)您必须在conf
文件中指定。例如,看看这个conf文件——这是一个很好的例子:)说真的,我不知道应该在那里指定什么?Selenium在哪里运行?如果我指定http://localhost:4444
它不起作用。您应该在配置中使用seleniumAddress
或directConnect
,但不能同时使用两者。您可以看到,当您提供selenium地址时,它会在您的系统中本地运行selenium服务器。为此,您需要单独安装selenium服务器,但如果使用directConnect
,则不需要安装selenium服务器,它将直接启动浏览器。在baseUrl
中提供应用程序url,现在使用directConnect
,请参见!。请参考此链接了解更多信息-感谢发布您的解决方案。这也花了我好几天的时间。真让人恼火!感谢您发布您的解决方案。这也花了我好几天的时间。真让人恼火!
exports.config = {
allScriptsTimeout: 11000,
specs: [
'./src/e2e/**/*.e2e-test.ts'
],
capabilities: {
'browserName': 'chrome'
},
directConnect: true,
baseUrl: 'http://localhost:4200/',
framework: 'jasmine',
jasmineNodeOpts: {
showColors: true,
defaultTimeoutInterval: 30000,
print: function() {}
},
beforeLaunch: function() {
require('ts-node').register({
project: 'tsconfig.e2e.json'
});
},
onPrepare() {
jasmine.getEnv().addReporter(new SpecReporter({
spec: {
displayStacktrace: true
}
}));
}
};