在bitbucket管道上运行e2e的麻烦

时间:2017-05-02 10:21:05

标签: angular docker bitbucket bitbucket-pipelines

我尝试为使用angular-cli开发的应用配置CI过程。

目前我设法让管道运行业力测试,我的问题是e2e(angular-cli的“ng e2e”命令)

这是我的bitbucket _pipelines.yml:

image: node:7.6.0

pipelines:
 default:
   - step:
    script: # Modify the commands below to build your repository.
      - npm install -g @angular/cli
      - npm install
      - ng test --singleRun=true
      - ng e2e --env=prod

这里是管道的输出:

[11:59:09] I/file_manager - creating folder /opt/atlassian/pipelines/agent/build/node_modules/protractor/node_modules/webdriver-manager/selenium
[11:59:10] I/update - chromedriver: unzipping chromedriver_2.29.zip
[11:59:10] I/update - chromedriver: setting permissions to 0755 for /opt/atlassian/pipelines/agent/build/node_modules/protractor/node_modules/webdriver-manager/selenium/chromedriver_2.29
[11:59:10] I/launcher - Running 1 instances of WebDriver
[11:59:10] I/direct - Using ChromeDriver directly...
[11:59:10] E/launcher - Server terminated early with status 127
[11:59:10] E/launcher - Error: Server terminated early with status 127
    at earlyTermination.catch.e (/opt/atlassian/pipelines/agent/build/node_modules/selenium-webdriver/remote/index.js:252:52)
    at process._tickCallback (internal/process/next_tick.js:103:7)
From: Task: WebDriver.createSession()
    at Function.createSession (/opt/atlassian/pipelines/agent/build/node_modules/selenium-webdriver/lib/webdriver.js:777:24)
    at Function.createSession (/opt/atlassian/pipelines/agent/build/node_modules/selenium-webdriver/chrome.js:709:29)
    at Direct.getNewDriver (/opt/atlassian/pipelines/agent/build/node_modules/protractor/lib/driverProviders/direct.ts:90:25)
    at Runner.createBrowser (/opt/atlassian/pipelines/agent/build/node_modules/protractor/lib/runner.ts:225:39)
    at q.then.then (/opt/atlassian/pipelines/agent/build/node_modules/protractor/lib/runner.ts:391:27)
    at _fulfilled (/opt/atlassian/pipelines/agent/build/node_modules/protractor/node_modules/q/q.js:834:54)
    at self.promiseDispatch.done (/opt/atlassian/pipelines/agent/build/node_modules/protractor/node_modules/q/q.js:863:30)
    at Promise.promise.promiseDispatch (/opt/atlassian/pipelines/agent/build/node_modules/protractor/node_modules/q/q.js:796:13)
    at ./node_modules/protractor/node_modules/q/q.js:556:49
    at runSingle (/opt/atlassian/pipelines/agent/build/node_modules/protractor/node_modules/q/q.js:137:13)
    at flush (/opt/atlassian/pipelines/agent/build/node_modules/protractor/node_modules/q/q.js:125:13)
    at _combinedTickCallback (internal/process/next_tick.js:67:7)
    at process._tickCallback (internal/process/next_tick.js:98:9)
    [11:59:10] E/launcher - Process exited with error code 199

2 个答案:

答案 0 :(得分:1)

您似乎通过驱动程序启动了chrome,但是没有安装chrome。 chromedriver本身没有镀铬。

我不确定您如何解决它,但尝试在debug environment中安装Chrome并看到它对您有帮助。

答案 1 :(得分:1)

最后设法使用以下bitbucket-pipelines.yml:

运行它
 image: versys650/angular-cli-for-e2e-tests

 pipelines:
   default:
    - step:
      script: # Modify the commands below to build your repository.
      - npm install    
      - ng test --singleRun=true
      - export DISPLAY=:1
      - Xvfb $DISPLAY -ac -screen 0 1280x1024x8 &
      - ng e2e --env=prod

希望它会帮助某人......