bitbucketパイプラインでe2eテストを行うために、bitbucket-pipelines.yml、package.json、およびprotractor.conf.jsにいくつかの変更を加えました。
まず、bitbucket-pipelines.ymlのようになります。デフォルトのノードイメージの代わりにadrianmarinicaによって提供されるドッカーイメージを使用しました。
# You can specify a custom docker image from Docker Hub as your build environment.
image: adrianmarinica/bitbucket-pipelines-protractor
pipelines:
branches:
master:
- step:
caches:
- node
script:
- npm install
- npm start
- protractor protractor.conf.js
はその後、package.jsonは、ここで重要な変更がstartコマンドで "&" であるこの
"scripts": {
...
"start": "ng serve &"
...
}
のように見えます。これはバックグラウンドでサーブを実行し、分度器のコマンドが起動できるようにします。あなたのテストはローカルで正常に実行する場合
最後に、protractor.conf.js
const { SpecReporter } = require('jasmine-spec-reporter');
exports.config = {
allScriptsTimeout: 1800000,
specs: [
'./e2e/**/*.e2e-spec.ts'
],
getPageTimeout: 120000,
capabilities: {
'browserName': 'chrome',
'chromeOptions': {
'args': [
'--no-sandbox',
'--disable-gpu'
]
}
},
useAllAngular2AppRoots: true,
directConnect: true,
baseUrl: 'http://localhost:4200/',
framework: 'jasmine',
jasmineNodeOpts: {
showColors: true,
defaultTimeoutInterval: 120000,
print: function() { }
},
beforeLaunch: function() {
require('ts-node').register({
project: 'e2e/tsconfig.e2e.json'
});
},
onPrepare() {
jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));
}
};
にはいくつかの微調整は、彼らはまた、パイプラインで、この構成に従って、環境が同じである必要があります必要があります。
実際に角度2のアプリケーションです。 – MarBVI
角度2の角度に対してもこのshoulが働きます。 – demouser123
しかし、E2E testaを実行するには、アプリケーションをポート4200で提供する必要がありますか?パイプラインではどうしたらいいですか?なぜなら、私がスクリプトにnpm startを入れると、それがそこにくっついて分度器のステートメントが決して解けないからです。 – MarBVI