Selenium 未为自定义dragrator.conf文件创建Webdriver实例
我想在Travis中集成我的E2E套件,所以我遵循了这篇文章。正如文章中提到的,我已经创建了Travis构建的一个自定义Selenium 未为自定义dragrator.conf文件创建Webdriver实例,selenium,selenium-webdriver,protractor,travis-ci,Selenium,Selenium Webdriver,Protractor,Travis Ci,我想在Travis中集成我的E2E套件,所以我遵循了这篇文章。正如文章中提到的,我已经创建了Travis构建的一个自定义dragrator.ci.conf.js文件。我已将此文件放在我的e2e文件夹中(路径:e2e/dragrator.ci.conf.js) 我的自定义e2e/dragrator.ci.conf.js文件和角度生成的dragrator.conf.js文件中唯一的区别是下面显示的args属性中的值 e2e/dragotor.ci.conf.js chromeOptions: {
dragrator.ci.conf.js
文件。我已将此文件放在我的e2e
文件夹中(路径:e2e/dragrator.ci.conf.js
)
我的自定义e2e/dragrator.ci.conf.js
文件和角度生成的dragrator.conf.js
文件中唯一的区别是下面显示的args
属性中的值
e2e/dragotor.ci.conf.js
chromeOptions: {
args: [
'--headless',
'window-size=1920,1080'
]
}
const SpecReporter = require('jasmine-spec-reporter').SpecReporter;
exports.config = {
allScriptsTimeout: 11000,
specs: [
'./e2e/**/*.e2e-spec.ts'
],
capabilities: {
shardTestFiles: true,
maxInstances: 2,
'browserName': 'chrome',
chromeOptions: {
args: ['--start-maximized']
}
},
directConnect: true,
baseUrl: 'localhost:4000/',
framework: 'jasmine',
jasmineNodeOpts: {
showColors: true,
defaultTimeoutInterval: 300000,
print: function () {
}
},
useAllAngular2AppRoots: true,
onPrepare: function () {
jasmine.getEnv().addReporter(new SpecReporter());
require('ts-node').register({
project: 'e2e/tsconfig.json'
});
}
};
量角器.conf.js
chromeOptions: {
args: [
'--headless',
'window-size=1920,1080'
]
}
const SpecReporter = require('jasmine-spec-reporter').SpecReporter;
exports.config = {
allScriptsTimeout: 11000,
specs: [
'./e2e/**/*.e2e-spec.ts'
],
capabilities: {
shardTestFiles: true,
maxInstances: 2,
'browserName': 'chrome',
chromeOptions: {
args: ['--start-maximized']
}
},
directConnect: true,
baseUrl: 'localhost:4000/',
framework: 'jasmine',
jasmineNodeOpts: {
showColors: true,
defaultTimeoutInterval: 300000,
print: function () {
}
},
useAllAngular2AppRoots: true,
onPrepare: function () {
jasmine.getEnv().addReporter(new SpecReporter());
require('ts-node').register({
project: 'e2e/tsconfig.json'
});
}
};
在我的package.json
文件中有两个脚本,一个用于在本地运行测试,Travis
Package.json(与grandor.conf.js所在的级别相同)
.travis.yml
branches:
only:
- staging
- prod
- functional-testing
script:
...
- if [[ $TRAVIS_COMMIT_MESSAGE == *"[skip e2e]"* ]]; then echo "skipping E2E test"; else npm run e2e:ci; fi
...
before_deploy:
- sed -i '/dist/d' .gitignore
- git add . && git commit -m "latest build"
- cd $TRAVIS_BUILD_DIR/dist
问题
只要运行npm run e2e
,每个测试都可以正常运行。但是当我使用npmrune2e:ci
命令脚本时,会挂起,并且不会运行WebDriver实例
I/发射器 — 正在运行0个WebDriver实例
而不是1或2个实例。这是因为您创建了一个新的配置文件,并且显然已将其放置在文件夹中
/e2e
而不是默认的根文件夹
您案例中测试文件的路径也应该更新
因此,。/e2e/***/.e2e-spec.ts'
将更改为。/***/.e2e-spec.ts'
由于当前测试无法找到任何指定的文件,因此它不会运行任何实例。您能为Travis共享您的配置文件吗?还有,为什么您同时需要
——杀死其他人?也可以用&&@Oleksii更改“\”吗?我已经添加了.yml
文件脚本。请check@Oleksii之所以添加它,是因为它将同时运行两个任务(而不是在两个不同的终端上运行它们),并且如果进程中有任何一个(前端或服务器)死了,它也会结束另一个,因为另一个将是无用的then@Oleksii我也试过&
了。但是它仍然挂着@Oleksii。我还添加了完整的dragotor.conf.js
文件哦,谢谢,@Manzur先生,你今天刚刚救了我的命。我犯了一个多么愚蠢的错误啊