【问题标题】:How to run Clojure code before each "lein test"?如何在每次“lein 测试”之前运行 Clojure 代码?
【发布时间】:2014-12-12 01:00:29
【问题描述】:

如何在测试文件中的测试运行之前运行一些 Clojure 代码?

我希望在运行所有测试之前调用一些 Clojure 代码(比如在我的 lein 项目的根目录下执行 lein test)或在运行单个测试之前调用。我不想在多个.clj 文件中复制那段代码。

我该怎么做?是否有一些“特殊”.clj 文件可以在运行任何测试之前运行?

【问题讨论】:

  • 你试过使用前置条件吗?
  • @RobertHarvey: 谷歌搜索 "lein test preconditions" 给了我这个非常SO的问题,我刚刚问的第一个答案:(回答你的问题:不,我没有尝试先决条件......但我不介意我知道要读什么/谷歌:)
  • 我对lein一无所知。但通常测试框架会为您提供一些在运行测试之前进行设置的方法。

标签: testing clojure leiningen


【解决方案1】:

您可能想要使用测试装置。 This question 有一个很好的答案,可以帮助您入门。

【讨论】:

  • @RobertHarvey 是的; lein“只是”一个构建工具。在测试的情况下,它所做的只是将您的测试代码放在类路径中,然后运行测试。由于夹具由 clojure.test 提供,并且 lein 不会干扰您的项目代码,因此这适用于 lein。大多数事情确实如此;绝大多数 Clojure 程序都是通过 lein 构建的。
  • 使用夹具将在每次测试之前运行代码。我发现这很少是理想的情况。通常我想在每次集成测试之前运行代码,而不是单元测试或类似的东西。在这种情况下,处理设置和拆卸的简单宏比固定装置效果更好。
  • 你可以在每次测试之前运行fixtures或者只运行一次@arcdrag
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-18
  • 1970-01-01
  • 1970-01-01
  • 2014-09-20
  • 1970-01-01
  • 2013-09-08
相关资源
最近更新 更多