2017-01-12 10 views
2

私はjavascriptアプリケーションを構築することを目的としたいくつかのコンテナを作成しようとしています。受け入れテスト、ドッカーとセレン

  • を私の受け入れはここ

をテストする私のプロジェクトのdockerfileの開始私のプロジェクト

  • を構築する私のユニットテスト
  • を開始私の依存関係
  • をインストールします。ここでは

    は、私が何をする必要があるかです:

    FROM node:6.9 
    
    # Enviroment variables 
    ENV HOMEDIR /data 
    
    RUN mkdir -p ${HOMEDIR} 
    WORKDIR ${HOMEDIR} 
    
    # install all dependencies 
    ADD package.json ./ 
    RUN npm install 
    
    # add node content initially 
    ADD . . 
    CMD CI=true npm test && npm run build && npm run test:acceptance 
    

    私が受け入れテストを開始するときには、セレニウムサーバーとphantomjsブラウザーを使用する必要があります。この方法では、とstackoverflowのコミュニティのおかげで、私は次のようになりますドッキングウィンドウ-compose.ymlファイル作成:

    version: '2' 
    services: 
        hub: 
        image: selenium/hub 
        ports: 
         - "4444:4444" 
        phantomjs: 
        image: akeem/selenium-node-phantomjs 
        depends_on: 
         - hub 
        links: 
         - hub 
        app: 
        build: . 
        depends_on: 
         - hub 
         - phantomjs 
    

    をマイセレンphantomjsよく私のセレン/ハブに接続し、セレンはローカルホストで提供されています:4444私のホストマシンで。

    私の本当の問題は、受け入れテスト(webdriverio)を達成するための私のツールが、セレンのサーバーに接続できないように見えることです。その理由はわかりません。

    app_1  | [08:24:07] COMMAND POST  "/wd/hub/session" 
    app_1  | [08:24:07] DATA  {"desiredCapabilities":{"javascriptEnabled":true,"locationContextEnabled":true,"handlesAlerts":true,"rotatable":true,"maxInstances":5,"browserName":"phantomjs","loggingPrefs":{"browser":"ALL","driver":"ALL"},"requestOrigins":{"url":"http://webdriver.io","version":"4.6.1","name":"webdriverio"}}} 
    app_1  | ERROR: Couldn't connect to selenium server 
    app_1  | phantomjs 
    app_1  | Error: Couldn't connect to selenium server 
    app_1  | 
    app_1  | Wrote xunit report to [./xunit]. 
    

    どれ提案:

    私は、次のスタックを持っていますか?

  • 答えて

    1

    あなたが別のコンテナ内からテスト・スクリプトを実行している場合は、その後、wd_hostパラメータがhttp://hub:4444/wd/hubに設定する必要があなたの助けのために

    おかげで、代わりのhttp://localhost:4444/wd/hub(デフォルト)。

    links:フィールドは、他の容器に、ないlocalhostとして、ホスト名hubhubが使用可能になります。

    フィールドは、ホストマシンからコンテナにアクセスするためにのみ使用され、コンテナ自体がアクセスできるものには影響しません。

    +0

    あなたの答えをありがとう。私はwdio.conf.js x_xの内部でセレンのホストを変更する方法を見つけようとしています。これがうまくいくと私はあなたにフィードバックを与えます – mfrachet

    関連する問題