我正在将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内的报告文件夹中。
当查看目标文件夹中生成的文件夹时,我发现我有一个"测试类"每个tdd和。#34;类"的.class文件夹带有.class源代码的文件夹,但无处可见webapps文件。
在使用ant的版本中测试运行没有问题,当我在ANT中构建时,它生成一个项目文件夹,其中包含webapps文件夹和WEB-INF / classes中的文件,源代码和TDD的.class文件。
我检查文件夹是否设置正确
这些测试使用文件路径查看jrxml文件是否存在于视图文件夹的module / report文件夹中:../../../ modulo / reporte / file_name。
生成报告文件路径的类位于project / web-inf / classes / system中,并使用以下代码:
URL path = Constantes.class.getResource (rutaReporte)
之后检查他们是否编译并返回有效结果(完整的JasperPrint)
使用Intellij运行集成测试我需要做什么?
答案 0 :(得分:0)
我使用“maven-resources-plugin”插件修复它,将所有webapp资源复制到测试类,以便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>