当前位置: 首页 > 面试题库 >

在JUnit测试类中的哪里配置log4j?

徐淳
2023-03-14
问题内容

查看我编写的最后一个JUnit测试用例,我在类构造函数中调用了log4j的BasicConfigurator.configure()方法。对于仅运行Eclipse的“作为JUnit测试用例运行”命令中的单个类来说,这样做效果很好。但是我意识到这是不正确的:我很确定我们的主测试套件可以从一个进程运行所有这些类,因此log4j配置应该在某个地方进行。

但是我仍然需要自己单独运行一个测试用例,在这种情况下,我需要配置log4j。我应该在哪里放置配置调用,以便在测试用例独立运行时可以运行,而不是在作为较大套件的一部分运行测试用例时运行?


问题答案:

所述LogManager类确定的log4j配置在一个使用静块被加载的类时运行。有三种面向最终用户的选项:

  1. 如果指定log4j.defaultInitOverride为false,则根本不会配置log4j。
  2. 自己手动指定配置文件的路径,并覆盖类路径搜索。您可以通过使用以下参数直接指定配置文件的位置java

-Dlog4j.configuration=<path to properties file>

在您的测试运行器配置中。

  1. 在测试期间,允许log4j扫描类路径中的log4j配置文件。(默认)

另请参见在线文档。



 类似资料:
  • 问题内容: 关于组织单元测试,我有两个问题。 我是否必须将测试放在与测试类相同的程序包中,或者可以在不同程序包中组织测试? 例如,如果我具有 有效性 和 其他 测试,即使它们属于同一班级,将它们分成不同的包是否正确? 模拟和存根类呢?我应该将它们与仅包含测试的软件包分开,还是放在一起? 问题答案: 我们执行JUnit测试用例的方法是将它们放在相同的包中,但放在不同的根目录中。由于我们使用Maven

  • 我试图通过Jenkins进行持续集成。我现在在发布测试结果的部分,有一点挣扎。 记录测试结果错误:发布服务器Hudson.tasks.junit.JunitResultArchiver由于异常Hudson.abortException:找不到测试报告文件而中止。配置错误?在hudson.tasks.junit.junit.junitparser$parseresultcallable.invoke

  • 问题内容: 为了“有趣”,我将一些Java类轻松地移植到PHP(例如),因此我希望能够运行/移植这些单元测试: 在哪里可以找到它们?任何最新版本的测试都将有所帮助。 问题答案: OpenJDK项目在线提供其源代码。例如,可以在http://hg.openjdk.java.net/jdk7u/jdk7u2/jdk/file/58ad18490a50/test/java/lang/StringBuil

  • db-config-test.xml Maven插件: StackError:

  • 本文向大家介绍YAML 配置的优势在哪里 ?相关面试题,主要包含被问及YAML 配置的优势在哪里 ?时的应答技巧和注意事项,需要的朋友参考一下 YAML 现在可以算是非常流行的一种配置文件格式了,无论是前端还是后端,都可以见到 YAML 配置。那么 YAML 配置和传统的 properties 配置相比到底有哪些优势呢? 配置有序,在一些特殊的场景下,配置有序很关键 支持数组,数组中的元素可以是基