2017-04-17 3 views
0

CircleCIでNightwatchテストを実行しようとしていますが、これはちょっとしたことでした...悪夢CircleCIでNightwatchテストを実行するには?

CricleCIはPHPアプリケーションのWebサーバーを実行するように設定されていないようです。

〜54 ChromeブラウザのCircleCIバージョンが> =〜55

CircleCIのChromeは、私のlocal.webapp.devドメインを見つけることができないために求めているナイトウォッチ、と互換性がありません、とエラーにERR_ICANN_NAME_COLLISION

を与えます

私はCircleCI docsで推奨バージョンから変更され、次のApacheの設定、使用して、Webサーバのセットアップを持っている:多くの試行錯誤の後

<VirtualHost *:80> 
    LoadModule php5_module /opt/circleci/php/5.6.17/libexec/apache2/libphp5.so 

    DocumentRoot /home/ubuntu/phpwebapp 
    ServerName local.webapp.dev 
    <FilesMatch \.php$> 
    SetHandler application/x-httpd-php 
    </FilesMatch> 
</VirtualHost> 

答えて

1

を、私は最終的にこの作業を持っている:

ファイルの例:

:テストは package.json使っサークルによって自動的に実行されている

"test": "./node_modules/.bin/nightwatch --env circleci" 

これは、ピックアップしてごNightwatch.jsonからテストを実行します:

"circleci" : { 
    "output_folder" : "${CIRCLE_TEST_REPORTS}", 
    "launch_url" : "http://local.phpwebapp.dev", 
    "selenium_host" : "localhost", 
    "selenium_port" : 4444, 
    "screenshots" : { 
    "enabled" : false, 
    "path" : "" 
    }, 
    "desiredCapabilities" : { 
    "browserName" : "chrome", 
    "marionette": true 
    } 
} 

CircleCIマシンは、セレン/ナイトウォッチの現在のバージョンと互換性がありませんクロームの古いバージョンを使用しています。 Chromeはcircle.yamlpre依存関係で更新する必要があります

dependencies: 
    pre: 
    # Update Google Chrome. 
    - google-chrome --version 
    - wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add - 
    - sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb stable main" >> /etc/apt/sources.list.d/google.list' 
    - sudo apt-get update 
    - sudo apt-get --only-upgrade install google-chrome-stable 
    - google-chrome --version 

Circle docsは、Apacheのconfファイル内の重要な部分を忘れて、あなたは、ポートは、デフォルトのポート80を使用するように変更されset the allow/deny rules for your webroot directory必要があります

<VirtualHost *:80> 
    LoadModule php5_module /opt/circleci/php/5.6.17/libexec/apache2/libphp5.so 

    DocumentRoot /home/ubuntu/phpwebapp 
    ServerName local.phpwebapp.dev 
    <FilesMatch \.php$> 
    SetHandler application/x-httpd-php 
    </FilesMatch> 
    <Directory /home/ubuntu/phpwebapp> 
    AllowOverride all 
    Require all granted 
    </Directory> 
</VirtualHost> 

あなたは、すべての必要なApacheモジュールをアクティブにし、Apacheにあなたのconfをロードし、circle.yamlを使用する必要があります。

dependencies: 

    ... 

    post: 
     # circle seems to expect this but doesnt install it 
     - sudo apt-get install libapache2-mod-php5 
     # copy apache config file 
     - sudo cp ~/phpwebapp/circleApache.conf /etc/apache2/sites-available 
     # give phpwebapp to apache 
     - sudo chown -R www-data:www-data ~/phpwebapp 
     - sudo a2enmod rewrite 
     - sudo a2enmod headers 
     - sudo a2ensite circleApache 
     # DocumentRoot doesnt work, so symlinking instead 
     - sudo rm -r /var/www/html 
     - sudo ln -s /home/ubuntu/phpwebapp /var/www/html 
     - ls /var/www/html 
     - sudo service apache2 restart 
     # add local.phpwebapp.dev to /etc/hosts 
     - sudo sh -c "echo 127.0.0.1 local.phpwebapp.dev >> /etc/hosts" 

a2enmod行は、PHPアプリケーションのための必要なapacheモジュールの書き換えとヘッダーを有効にします。

a2ensiteは、設定ファイルとドメインを有効にします。特定のドメインは、.devも/etc/hostsに行を追加する必要があります*のように:サークルChromeブラウザがエラーERR_ICANN_NAME_COLLISIONを与えていたとき

- sudo sh -c "echo 127.0.0.1 local.phpwebapp.dev >> /etc/hosts"

これが実現しました。このエラーは、Nightwatch経由でsource of the test pageを印刷すると明らかになりました。

関連する問題