Как запустить команду maven в AWS Device Farm - PullRequest
2 голосов
/ 19 мая 2019

Я пытаюсь запустить свой мобильный проект Java в ферме устройств, используя maven. Когда я запускаю эту команду на своем локальном компьютере в правильном каталоге, она работает:

 mvn test -D "cucumber.options="src/test/java/cucumber/features" --glue 
cucumber.steps --tags @InstallApp"

Я поместил эту команду в файл yaml в ферме устройств aws, но она не работает. Это ошибка, которую я получаю:

        [DeviceFarm] echo "Start Appium TestNG test"
     Start Appium TestNG test
    [DeviceFarm] mvn test -D 
    "cucumber.options="src/test/java/cucumber/features" --glue 
cucumber.steps 
    --tags @InstallApp"
    [INFO] Scanning for projects...
    [INFO] BUILD FAILURE
    [ERROR] The goal you specified requires a project to execute but there 
     is 
     no POM in this directory (/tmp/scratchncneoU.scratch/test- 
 packageO6o8s7). 
  Please verify you invoked Maven from the correct directory. -> [Help 1]

Как мне запустить эту команду maven в ферме устройств? Где там находится пом?

Спасибо

После ввода этой команды в файле yaml: [DeviceFarm] java -Dappium.screenshots.dir = $ DEVICEFARM_SCREENSHOT_PATH -D "cucumber.options =" ​​classpath: features "--glue cucumber.steps --tags @InstallApp" org.testng.TestNG -testjar * -tests.jar - d $ DEVICEFARM_LOG_DIR / test-output -verbose 10

Я получаю сообщение об ошибке: Не удалось найти testng.xml в файле jar, хотя у меня есть это в моем pom:

<directory>${project.basedir}/src/test/java/cucumber</directory>
            </testResource>
        </testResources>  

Что это может быть?

1 Ответ

0 голосов
/ 19 мая 2019

Команда mvn не выполняется, поскольку ваш пакет развертывания не содержит весь проект. Судя по всему, что происходит с текущим пакетом развертывания, вы сможете делать то, что вы хотите, с помощью этой команды:

- java -Dappium.screenshots.dir=$DEVICEFARM_SCREENSHOT_PATH -D"cucumber.options="src/test/java/cucumber/features" --glue cucumber.steps --tags @InstallApp" org.testng.TestNG -testjar *-tests.jar -d $DEVICEFARM_LOG_DIR/test-output -verbose 10

В противном случае, если вы хотите использовать maven, вам нужно будет сжать весь проект и включить его pom.xml. Так, например, с помощью образца java-тестов на огурец

git clone https://github.com/aws-samples/aws-device-farm-appium-cucumber-tests-for-sample-app.git
zip -r deployment_package.zip aws-device-farm-appium-cucumber-tests-for-sample-app

Тогда вы сможете использовать maven в файле testspec.yml. Например, я мог выполнить следующую команду для примера: mvn clean test после перехода в каталог проекта и затем, чтобы получить результаты, мне пришлось экспортировать целевой каталог.

  test:
    commands:
      # Your test package is downloaded in $DEVICEFARM_TEST_PACKAGE_PATH so we first change directory to that path.
      - echo "Navigate to test package directory"
      - cd $DEVICEFARM_TEST_PACKAGE_PATH/aws-device-farm-appium-cucumber-tests-for-sample-app
      - mvn clean test
...
artifacts:
  # By default, Device Farm will collect your artifacts from following directories
  - $DEVICEFARM_TEST_PACKAGE_PATH/aws-device-farm-appium-cucumber-tests-for-sample-app/target
  - $DEVICEFARM_LOG_DIR

Однако вам нужно будет загрузить zip-файл как APPIUM_NODE тестовый тип, чтобы избежать парсера тестового пакета.

НТН

-Джеймс

...