当前位置:   article > 正文

IDEA的Maven工程构建Junit4的单元测试用例jar包并在Linux环境运行单元测试用例_如何运行jar包中的测试用例

如何运行jar包中的测试用例

【问题背景】

       使用Junit框架编写单元测试用例大家都比较熟悉,最近项目需要开发一个操作系统隔离的命令执行CBB模块,我们在本地IDEA编写的单元测试用例只能在本地Windows环境运行,项目需要将Junit4的单元测试用例编译后放到不同的操作系统环境执行,验证CBB模块在不同操作系统环境下执行的有效性。

【解决思路和详细步骤】

一、通过Maven编译包含生产代码、三方依赖和单元测试用例的fat jar

1.1 IDEA下的Maven工程路径如下图:

1.2 pom文件中添加Junit依赖和test目录打包

dependency依赖

  1. <dependency>
  2. <groupId>junit</groupId>
  3. <artifactId>junit</artifactId>
  4. <version>4.13.2</version>
  5. <scope>test</scope>
  6. </dependency>

test目录打包:

  1. <!-- 在pom.xml中添加一个新的Maven Profile -->
  2. <profiles>
  3. <profile>
  4. <id>package-tests</id>
  5. <build>
  6. <plugins>
  7. <!-- 配置maven-compiler-plugin编译包括测试代码 -->
  8. <plugin>
  9. <groupId>org.apache.maven.plugins</groupId>
  10. <artifactId>maven-compiler-plugin</artifactId>
  11. <version>3.8.1</version> <!-- 请确保使用最新稳定版 -->
  12. <configuration>
  13. <testIncludes>
  14. <testInclude>src/test/java/com/*</testInclude>
  15. </testIncludes>
  16. </configuration>
  17. </plugin>
  18. <!-- 使用maven-assembly-plugin自定义打包结构 -->
  19. <plugin>
  20. <groupId>org.apache.maven.plugins</groupId>
  21. <artifactId>maven-assembly-plugin</artifactId>
  22. <version>3.3.0</version>
  23. <configuration>
  24. <descriptors>
  25. <descriptor>src/main/resources/assembly.xml</descriptor>
  26. </descriptors>
  27. </configuration>
  28. <executions>
  29. <execution>
  30. <id>make-assembly</id>
  31. <phase>package</phase>
  32. <goals>
  33. <goal>single</goal>
  34. </goals>
  35. </execution>
  36. </executions>
  37. </plugin>
  38. </plugins>
  39. </build>
  40. </profile>
  41. </profiles>

assembly.xml 文件内容如下:

  1. <assembly
  2. xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3 http://maven.apache.org/xsd/assembly-1.1.3.xsd">
  5. <id>fat-tests</id>
  6. <formats>
  7. <format>jar</format>
  8. </formats>
  9. <includeBaseDirectory>false</includeBaseDirectory>
  10. <dependencySets>
  11. <dependencySet>
  12. <outputDirectory>/</outputDirectory>
  13. <useProjectArtifact>true</useProjectArtifact>
  14. <unpack>true</unpack>
  15. <scope>test</scope>
  16. </dependencySet>
  17. </dependencySets>
  18. <fileSets>
  19. <fileSet>
  20. <directory>${project.build.directory}/test-classes</directory>
  21. <outputDirectory>/</outputDirectory>
  22. <includes>
  23. <include>**/*.class</include>
  24. </includes>
  25. <useDefaultExcludes>true</useDefaultExcludes>
  26. </fileSet>
  27. </fileSets>
  28. </assembly>

1.3 Maven命令对生产代码、依赖包、测试代码打fat jar

mvn clean package -Ppackage-tests

二、将fat jar部署到不同的操作系统环境运行测试用例

java -cp common-building-block-fat-tests.jar org.junit.runner.JUnitCore com.winicssec.cbbapi.util.WntI18nUtilTests

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/936266
推荐阅读
相关标签
  

闽ICP备14008679号