AWS设备场:APPIUM_JAVA_JUNIT_TEST_PACKAGE_CLASS_FILE_MISSING_IN_TESTS_JAR

时间:2018-10-23 09:52:59

标签: java maven automated-tests junit4 aws-device-farm

我正在尝试将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

我该怎么办?我真的不知道该怎么办,我尝试了一切。

1 个答案:

答案 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

希望有帮助

詹姆斯