如何 运行 使用 intellij 和 maven 对 Web 应用程序进行集成测试
how to run integration test for a web application with intellij and maven
我正在将 java 中的 Web 应用程序从 ANT 迁移到 MAVEN,以解决库和依赖项的问题。我正在使用 IDE "intellij IDEA 14".
我将 .java 文件移动到 main/java 文件夹,将资源(.properties 和 XML)移动到文件夹 main/resources 文件夹,然后将我的 . jsp 个文件到 main/webapps 文件夹。我已经有一个没有依赖问题的应用程序的可执行版本。
现在我遇到了 TDD 问题,我将测试文件移动到 test/java 文件夹,但是当我 运行 集成测试全部失败,因为他们找不到资源webapps 文件夹。
更准确地说,失败的测试是那些检查使用 jasper-report 生成的报告的测试,这些报告位于 webapps 内的报告文件夹中。
当查看目标文件夹中生成的文件夹时,我看到我有一个 "test-classes" 文件夹,其中包含每个 tdd 的 .class 和 "classes" 文件夹,其中包含 .class 的源代码,但无处可见 webapps 文件。
测试 运行 在 ant 版本中没有问题,当我在 ANT 中构建时,它会生成一个项目文件夹,其中包含 webapps 文件夹中的文件和 WEB-INF/classes .class 源代码和 TDD 文件。
我检查文件夹是否设置正确
这些测试使用文件路径查看 jrxml 文件是否存在于视图文件夹的 module/report 文件夹中:../../../modulo/reporte/file_name。
生成报告文件路径的class在project/web-inf/classes/system中,使用以下代码:
URL path = Constantes.class.getResource (rutaReporte)
之后检查它们是否编译并且 return 一个有效的结果(完整的 JasperPrint)
我必须如何使用 Intellij 对 运行 en MAVEN 进行集成测试?
我使用 "maven-resources-plugin" 插件修复它,将所有 webapp 资源复制到 test-类 以便 tdd 可以找到要测试的资源
这是我的 pom 配置:
<?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>
...
<build>
...
<plugins>
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>additional-resources</id>
<phase>process-test-resources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.testOutputDirectory}</outputDirectory>
<resources>
<resource>
<directory>${project.basedir}/src/main/webapp</directory>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
我正在将 java 中的 Web 应用程序从 ANT 迁移到 MAVEN,以解决库和依赖项的问题。我正在使用 IDE "intellij IDEA 14".
我将 .java 文件移动到 main/java 文件夹,将资源(.properties 和 XML)移动到文件夹 main/resources 文件夹,然后将我的 . jsp 个文件到 main/webapps 文件夹。我已经有一个没有依赖问题的应用程序的可执行版本。
现在我遇到了 TDD 问题,我将测试文件移动到 test/java 文件夹,但是当我 运行 集成测试全部失败,因为他们找不到资源webapps 文件夹。
更准确地说,失败的测试是那些检查使用 jasper-report 生成的报告的测试,这些报告位于 webapps 内的报告文件夹中。
当查看目标文件夹中生成的文件夹时,我看到我有一个 "test-classes" 文件夹,其中包含每个 tdd 的 .class 和 "classes" 文件夹,其中包含 .class 的源代码,但无处可见 webapps 文件。
测试 运行 在 ant 版本中没有问题,当我在 ANT 中构建时,它会生成一个项目文件夹,其中包含 webapps 文件夹中的文件和 WEB-INF/classes .class 源代码和 TDD 文件。
我检查文件夹是否设置正确
这些测试使用文件路径查看 jrxml 文件是否存在于视图文件夹的 module/report 文件夹中:../../../modulo/reporte/file_name。
生成报告文件路径的class在project/web-inf/classes/system中,使用以下代码:
URL path = Constantes.class.getResource (rutaReporte)
之后检查它们是否编译并且 return 一个有效的结果(完整的 JasperPrint)
我必须如何使用 Intellij 对 运行 en MAVEN 进行集成测试?
我使用 "maven-resources-plugin" 插件修复它,将所有 webapp 资源复制到 test-类 以便 tdd 可以找到要测试的资源
这是我的 pom 配置:
<?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>
...
<build>
...
<plugins>
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>additional-resources</id>
<phase>process-test-resources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.testOutputDirectory}</outputDirectory>
<resources>
<resource>
<directory>${project.basedir}/src/main/webapp</directory>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>