如何在Bitrise上运行基于Maven-Cucumber-JVM的测试自动化

时间:2019-01-14 12:14:02

标签: bitrise

是否可以在Bitrise CI / CD上运行基于Java的测试自动化套件?

我将要研究的功能:  -Maven运行时  -传递字符串参数  -黄瓜JVM  -与云设备提供商之类的连接-Browserstack

此外,为此,我们需要在Bitrise上进行什么样的工作

谢谢

2 个答案:

答案 0 :(得分:1)

Bitrise肯定提供了这些功能,并且可以在进行项目设置时自动配置或推荐一些解决方案。如果您在此过程中需要任何帮助/指导,请联系Bitrise支持(通过现场聊天或电子邮件),他们可以为您提供特定的设置:)

答案 1 :(得分:1)

这可以通过使用“脚本”步骤来实现,该步骤在您的存储库中调用一个脚本:(路径相对于您的仓库)

Picture of Script Step named Run Test Controller

脚本步骤:

#!/usr/bin/env bash
set -ex

bash ./scripts/bitrise/test_controller.sh

test_controller.sh中,我们具有控制其他bash脚本执行的逻辑(也可以使用ruby),然后我们将在其中运行maven:

test_controller.sh

#!/usr/bin/env bash
set -ex

if [[ "$SHOULD_RUN_SPECIFIC_TESTS" == "false" && "$SHOULD_RUN_RELEASE_TESTS" == "false" ]]; then
  if [[ $BITRISE_TRIGGERED_WORKFLOW_TITLE == "iOS-Appium" ]]; then
    echo "=> Executing run_develop_ios_tests.sh"
    bash ./scripts/bitrise/ios/run_develop_ios_tests.sh
    exit 0
  elif [[ $BITRISE_TRIGGERED_WORKFLOW_TITLE == "Android-Appium" ]]; then
    echo "=> Executing run_develop_android_tests.sh"
    bash ./scripts/bitrise/android/run_develop_android_tests.sh
    exit 0
  fi
fi

如果我们不想运行特定的测试而不发布,并且触发此运行的工作流是iOS-Appium,则我们运行执行run_develop_ios_tests.sh

run_develop_ios_tests.sh

#!/usr/bin/env bash
set -ex

mvn clean test \
  -DplatformName=IOS \
  -Dsurefire.suiteXmlFiles="${XML_FILES}" \
  -DIOS_DEVICE_NAME="${IOS_DEVICE_NAME}" \
  -DIOS_PLATFORM_VERSION="${IOS_PLATFORM_VERSION}" \
  -DSAUCE_USERNAME="${SAUCE_USERNAME}" \
  -DSAUCE_ACCESS_KEY="${SAUCE_ACCESS_KEY}"

测试控制器内部的逻辑由env变量驱动-引导我们的mvn clean test命令的字符串参数也是如此。

由于我们远程连接到SauceLabs,因此不需要任何特殊的代理。只是预安装的JDK和Maven。