类和测试类之间有什么区别

时间:2017-06-09 17:04:14

标签: java spring maven junit logback

我有一个springmvc maven项目通过IntelliJ Idea,我将logbak.xml放在src/main/resources文件夹中,将另一个logbak.xml放在src/test/resources文件夹中。

运行Junit Test时,test文件夹中的logbak.xml工作正常。 在tomcat服务器上运行我的web时,主文件夹中的logbak.xml工作。

如果我在test文件夹中没有logbak.xml,那么主文件夹中的logbak.xml就可以了。

为什么logbak.xml无法加载两次? 当不同的运行时,如何确定哪个文件可以先加载?

1 个答案:

答案 0 :(得分:0)

常规类(src/main/...)可以独立工作(没有测试部分中的那些)。这些是实现程序或库的实际工作的类。 因此,如果您打包所有内容,则只包含常规类。

正如您所看到的,将使用来自src / main的logback.xml。

测试类(src/test/...)用于测试常规类。因此,您需要类路径中的测试类和常规类(以及相应的资源)。 在常规类By Maven(IDE使用Maven提供的信息)之前,测试类被添加到类路径中 - 因此测试部分中存在的类/资源具有更高的优先级。如果请求的类/资源在测试部件中不存在但在主要部件中,则加载主部件中的一个/资源 - 正如您所观察到的那样。