testing - 基于 leiningen 测试元数据的 log4j 属性文件?

标签 testing logging clojure log4j leiningen

如何根据 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/

相关文章:

java - 读取谷歌应用程序引擎中的日志

clojure - 如何使用 Compojure 显示图像?

emacs - nrepl.el 和 leiningen 2 默认命名空间?

java - Clojure - 找不到匹配的方法

java - log4j根据登录linux的人创建动态文件名

c# - Azure 应用程序配置重新加载失败时如何记录错误

php - Docker - 启动 phpunit testsuite 最简单的方法是什么

testing - 通过 Selenium WebDriver 在浏览器的同一窗口 session 中打开一个新选项卡?

testing - 带有测试服务器的 Git 工作流程

unit-testing - 您如何测试不能一起进行单元测试的依赖类?