我正在尝试将Appium Java JUnit测试上传到AWS Device Farm。 我这样配置了pom.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.acme</groupId>
<artifactId>acme-android-appium</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<repositories>
<repository>
<releases>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>fail</checksumPolicy>
</releases>
<id>Experitest.repo1</id>
<name>YourName</name>
<url>https://cloud.experitest.com/repo/</url>
<layout>default</layout>
</repository>
</repositories>
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<classesDirectory>dummy</classesDirectory>
</configuration>
<version>2.6</version>
<executions>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.10</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/dependency-jars/</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.5.4</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<finalName>zip-with-dependencies</finalName>
<appendAssemblyId>false</appendAssemblyId>
<descriptors>
<descriptor>src/main/assembly/zip.xml</descriptor>
</descriptors>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-lambda-java-core</artifactId>
<version>1.1.0</version>
</dependency>
<!-- extentreports -->
<dependency>
<groupId>com.relevantcodes</groupId>
<artifactId>extentreports</artifactId>
<version>2.41.2</version>
</dependency>
<dependency>
<groupId>com.experitest</groupId>
<artifactId>appium</artifactId>
<version>4.1.2</version>
</dependency>
</dependencies>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
</project>
当我尝试通过maven编译代码时(使用以下命令通过CMD: mvn clean package -DskipTests = true ),我得到了一些包含以下信息的信息行:
[警告] / C:/ Users / Adam Peretz / workspace / Sweetch / src / Utilites / CommonOps.java:某些输入文件使用未经检查或不安全的操作。
[警告] / C:/ Users / Adam Peretz / workspace / Sweetch / src / Utilites / CommonOps.java:使用-Xlint重新编译:未经检查,以获取详细信息。
[警告] JAR将为空-未标记任何内容!
[INFO]建立成功
然后,我将“ zip-with-dependencies.zip ”文件上传到AWS Device Farm并得到以下错误:
处理文件时出现问题。我们找不到课程 测试JAR文件中的文件。请解压缩您的测试包,然后 然后解压缩测试JAR文件,验证是否至少有一个类文件 在JAR文件中,然后重试。有关此的更多信息 问题,请参阅documentation。
我该怎么办?我真的不知道该怎么办,我尝试了一切。
答案 0 :(得分:0)
您将Java文件放在哪里?该警告与默认情况下在maven中创建的jar文件有关,而不是* -test.jar
设备场使用* -test.jar文件,并且错误消息表明该文件为空。测试Java文件是否位于./src/test/java下?如果不是这样的话,否则maven不会将这些类文件打包到* -test.jar中。
这里是一个可以比较的例子。
https://github.com/aws-samples/aws-device-farm-appium-tests-for-sample-app
希望有帮助
詹姆斯