如何根据 leiningen 测试元数据使用不同的 log4j 属性文件?我有将调试日志记录输出到文件的函数。通常,有大量数据被写入此调试日志文件,从而降低了功能的速度。应用程序的正常运行不会有调试文件写入,因此我想在没有该文件写入的情况下对函数的正常运行进行基准测试。对于基准测试,我使用标准。我们假设用于基准测试 deftest
定义的元数据是 :benchmark
。
最佳答案
基于测试元数据执行此操作的麻烦在于,所有测试都在单个 JVM 实例中运行,并且在 JVM 中动态修改 Log4j 配置并不容易。相反,我会在您的 project.clj
中设置配置文件,以默认禁用 :benchmark
测试,并设置一个单独的配置文件来运行基准测试。假设您已将 :resource-paths
设置为包含调试级别 log4j.properties
文件,则您的基准配置文件可以根据需要设置类路径或系统配置文件使用不同的文件。例如:
(defproject myproject
...
:test-selectors {:default (complement :benchmark)}
:profiles {
:benchmark {
:test-selectors {:default :benchmark}
:jvm-opts ["-Dlog4j.configuration=log4j-benchmark.properties"]
}
})
然后您可以使用以下命令运行基准测试:
> lein with-profile +benchmark test
关于testing - 基于 leiningen 测试元数据的 log4j 属性文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23144373/