如何在AWS Device Farm中运行maven命令

时间:2019-05-19 08:41:57

标签: java maven aws-device-farm

我正在尝试使用Maven在设备场中运行我的Java移动项目。 当我在本地计算机上正确目录中运行此命令时,它会起作用:

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

我将此命令放在了aws设备场中的yaml文件上,但是它不起作用。 这是我得到的错误:

        [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命令? pom在哪里?

谢谢

在yaml文件中键入以下命令后: [DeviceFarm] java -Dappium.screenshots.dir = $ DEVICEFARM_SCREENSHOT_PATH -D“ cucumber.options =” classpath:features“ –胶黄瓜.steps --tags @InstallApp” org.testng.TestNG -testjar * -tests.jar- d $ DEVICEFARM_LOG_DIR / test-output -verbose 10

我收到以下错误消息:尽管我的pom中有这个文件,但在jar文件中找不到testng.xml:
                        

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

那会是什么?

1 个答案:

答案 0 :(得分:0)

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。例如,使用sample cucumber java tests

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

然后,您应该能够在testspec.yml文件中使用maven。例如,对于示例,我可以运行以下命令: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测试类型上载,以避免在那里出现测试包解析器。

HTH

-詹姆斯