如何使用intellij和maven运行Web应用程序的集成测试

时间:2015-03-24 15:41:31

标签: java maven intellij-idea tdd

我正在将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文件。

我检查文件夹是否设置正确 enter image description here

这些测试使用文件路径查看jrxml文件是否存在于视图文件夹的module / report文件夹中:../../../ modulo / reporte / file_name。

生成报告文件路径的类位于project / web-inf / classes / system中,并使用以下代码:

URL path = Constantes.class.getResource (rutaReporte)

之后检查他们是否编译并返回有效结果(完整的JasperPrint)

使用Intellij运行集成测试我需要做什么?

1 个答案:

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