2017-05-10 71 views
0

我有一個用CircleCI中的Gradle構建的java項目。這個java項目完全由Selenium tests + framework組成,它可以在SauceLabs的預先存在的環境中運行。我想採用我生成的工件(jar文件),並讓其他團隊使用它作爲他們自己的預部署測試過程的一部分來執行我的測試,但我不知道如何才能完成此任務。CircleCI在編譯過的工件上運行JUnit測試

yaml文件看起來像在CircleCI的jar文件上運行JUnit測試的樣子是什麼?我花了很多時間在網上尋找答案,我似乎無法找到符合此用例的任何內容。

+0

爲什麼你就不能申報上的罐子測試的依賴,然後運行./gradlew測試?也就是說,我不清楚下游團隊運行* your *測試作爲他們構建過程的一部分的目的。 –

+0

@OliverCharlesworth我不希望下游團隊必須下載和編譯整個自動化項目,而更希望有一個編譯工件可以在部署階段輕鬆運行。 – Austin

回答

0

我終於想出瞭如何做到這一點。以下是我的circle.yml文件的一些摘錄。

  1. 生成並保存自動化項目中的工件。
compile: 
    post: 
    - ./gradlew shadowJar 
    - mkdir -p $CIRCLE_ARTIFACTS/build/libs 
    - cp build/libs/* $CIRCLE_ARTIFACTS/build/libs 
  • 下載那些在其他一些構建項目工件
  • dependencies: 
        pre: 
        # Install JQ - used when fetching automation artifacts 
        - sudo apt-get update; sudo apt-get install jq 
        - curl "https://circleci.com/api/v1.1/project/github/:org/:project/latest/artifacts?build=master&filter=successful&circle-token=$TOKEN" >> artifacts.txt 
        - mkdir -p $HOME/automation 
        post: 
        # Fetch our UI automation jar 
        - echo export ART_URL=$(cat artifacts.txt | jq '[.[]? | select(.url | contains("automation-ui-all.jar"))][0] | .url') >> $HOME/.circlerc 
        - wget -O $HOME/automation/automation-ui-all.jar $ART_URL?circle-token=$TOKEN 
    
  • 執行測試
  • - java -cp $HOME/automation/automation-ui-all.jar Main TEST_ENV=https://test.com