Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unit testing 在运行测试用例时,如何从src/main/resources中排除persistence.xml?[Maven:多模块]_Unit Testing_Maven_Maven 3 - Fatal编程技术网

Unit testing 在运行测试用例时,如何从src/main/resources中排除persistence.xml?[Maven:多模块]

Unit testing 在运行测试用例时,如何从src/main/resources中排除persistence.xml?[Maven:多模块],unit-testing,maven,maven-3,Unit Testing,Maven,Maven 3,我有一个基于Maven的多模块项目。该项目是一个EAR文件,包含子部署,包括first ejb.jar和first web.war。第一个ejb.jar包含两个persistence.xml一个itssrc/main/resources/META-INF/persistence.xml,第二个在src/test/resources/META-INF/persistence.xml中。first ejb.jar的测试用例在它从测试目录中选择persistence.xml时成功执行(我手动从main

我有一个基于Maven的多模块项目。该项目是一个
EAR
文件,包含子部署,包括
first ejb.jar
first web.war
第一个ejb.jar
包含两个
persistence.xml
一个its
src/main/resources/META-INF/persistence.xml
,第二个在
src/test/resources/META-INF/persistence.xml
中。
first ejb.jar
的测试用例在它从测试目录中选择
persistence.xml
时成功执行(我手动从
main
中排除
persistence.xml
)。但是当我为
first web.war
运行测试用例时,它包括
persistence.xml
来自
first ejb.jar
的主目录,这使我的测试用例失败

所以,我的问题是如何在多模块项目中的Maven中说,在运行
第一个web.war
模块的测试用例时,从
第一个ejb.jar
的测试目录中包含
persistence.xml

编辑:

因此,我浏览了运行
first web.war
测试时使用的类路径。我看到它包含
first ejb.jar
作为其依赖项(这对于生产构建是正确的)。这实际上是在破坏对
first web.war
模块的测试,因为它最终使用
persistence.xml
来自
src\main\resources
first ejb.jar
模块


因此,我相信我需要做的是声明另一个工件,它包含
first ejb.jar
所包含的所有内容,但在其
src\main\resources
目录中包含不同的
persistence.xml
。我可以把它命名为
first ejb test.jar
。然后,我可以将此工件作为
first web.war
项目的依赖项,通过
maven
配置文件运行测试。

我没有权威性的答案,所以我将坚持评论。但我认为你做不到。我在应用程序上下文文件方面也遇到过类似的问题,并且在测试期间使用它们时总是以不同的方式调用它们(例如,
beans.xml
testbeans.xml
)。不确定相同的方法是否适用于
persistence.xml
。如何运行真正属于集成测试的测试。你能显示pom文件吗?@khmarbaise不幸的是,我不能显示我的pom文件,但我用我发现的一些发现编辑了我的问题。我相信我最初的要求可能不可能实现。解决方法或可能是正确的方法是使用另一个包含测试特定内容的工件,并使其成为需要使用它的任何人的依赖项。如果你有任何建议,请告诉我。干杯,谢谢大家抽出时间。