CircleCI 运行 编译工件的 JUnit 测试

CircleCI Run JUnit Tests on Compiled Artifacts

我在 CircleCI 中使用 Gradle 构建了一个 java 项目。这个 java 项目完全由 Selenium 测试 + 框架组成,运行 在带有 SauceLabs 的预先存在的环境中。我想获取我正在生成的工件(jar 文件)并让其他团队使用它来练习我的测试,作为他们自己的预部署测试过程的一部分,但我不确定如何完成此操作。

对于 运行 JUnit 对 CircleCI 的 jar 文件进行测试,yaml 文件会是什么样子?我花了很多时间在网上寻找答案,但我似乎找不到任何符合这个用例的东西。

我终于想出了如何做到这一点。以下是我的 circle.yml 文件的一些摘录。

  1. 生成并保存自动化项目中的工件。
compile:
  post:
    - ./gradlew shadowJar
    - mkdir -p $CIRCLE_ARTIFACTS/build/libs
    - cp build/libs/* $CIRCLE_ARTIFACTS/build/libs
  1. 在其他构建项目中下载这些工件
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
  1. 执行测试
- java -cp $HOME/automation/automation-ui-all.jar Main TEST_ENV=https://test.com