Docker
Docker は、テストスイートをあらゆるシステムで同じように動作するコンテナにカプセル化できる強力なコンテナ化テクノロジーです。これにより、ブラウザやプラットフォームのバージョンが異なることによる不安定さを回避できます。コンテナ内でテストを実行するには、プロジェクトディレクトリにDockerfile
を作成します。例:
FROM ianwalter/puppeteer:latest
WORKDIR /app
ADD . /app
RUN npm install
CMD npx wdio
Docker イメージにnode_modules
を含めないようにし、イメージのビルド時にインストールするようにしてください。そのためには、次の内容で.dockerignore
ファイルを追加します。
node_modules
ここでは、Google Chrome がプリインストールされた Docker イメージを使用しています。さまざまなブラウザ設定が可能なイメージが多数用意されています。Selenium プロジェクトによって管理されているDocker Hubのイメージをご確認ください。
Docker コンテナでは Google Chrome をヘッドレスモードでのみ実行できるため、wdio.conf.js
を変更して、ヘッドレスモードで実行されるようにする必要があります。
export const config = {
// ...
capabilities: [{
maxInstances: 1,
browserName: 'chrome',
'goog:chromeOptions': {
args: [
'--no-sandbox',
'--disable-infobars',
'--headless',
'--disable-gpu',
'--window-size=1440,735'
],
}
}],
// ...
}
オートメーションプロトコルで説明したように、WebDriver プロトコルまたは Chrome DevTools を使用して WebdriverIO を実行できます。WebDriver を使用する場合は、イメージにインストールされている Chrome のバージョンが、package.json
で定義したChromedriverのバージョンと一致していることを確認してください。
Docker コンテナをビルドするには、次を実行できます。
docker build -t mytest -f Dockerfile .
次に、テストを実行するには、次を実行します。
docker run -it mytest
Docker イメージの構成方法の詳細については、Docker ドキュメントをご確認ください。