如何使用jUnit测试运行器在Intellj中创建新的Leiningen Clojure项目?

时间:2018-11-19 03:17:16

标签: intellij-idea junit clojure leiningen

我在Java 1.8中使用IntelliJ IDEA 2018.2.6 (Build #IU-182.5107.16)创建了一个新的雷宁根骨架项目。

我有一个Error: Could not find or load main class cucumber.api.cli.Main。我想改用jUnit,所以我没有尝试修复Cucumber依赖项。

文件>项目结构>模块 :。验证测试文件夹已标记为“测试”。

文件>项目结构>库> +>从Maven :向我的模块中添加了junit:junit:4.12,其中包含传递依赖项和JavaDocs。

运行>编辑配置

  • 删除Cucumber Java配置
  • 添加jUnit配置

Run/Debug Configurations for jUnit

运行所有测试时,会显示一条空测试套件消息。

我尝试使用项目配置模式中Working目录中的绝对路径来重建项目,检查IntelliJ更新,使缓存无效。

当我在终端中运行lein test时,将检测到示例测试并打印出断言。

本质上,如何使用jUnit测试运行程序在Intellj中创建一个新的Leiningen Clojure项目,以检测并运行我的测试?

如果需要,我已将示例项目的source code推送到了Github。

1 个答案:

答案 0 :(得分:0)

我不在IntelliJ中创建项目。我在命令行上创建它们,然后将它们添加到IntelliJ / IDEA + Cursive。

~/tmp/demo > lein new app sample
Generating a project called sample based on the 'app' template.
~/tmp/demo > cd sample
~/tmp/demo/sample > ls -al
total 56
drwxrwxr-x 6 alan alan  4096 Nov 18 21:19 ./
drwxrwxr-x 3 alan alan  4096 Nov 18 21:19 ../
-rw-rw-r-- 1 alan alan   766 Nov 18 21:19 CHANGELOG.md
drwxrwxr-x 2 alan alan  4096 Nov 18 21:19 doc/
-rw-rw-r-- 1 alan alan    99 Nov 18 21:19 .gitignore
-rw-rw-r-- 1 alan alan   136 Nov 18 21:19 .hgignore
-rw-rw-r-- 1 alan alan 11219 Nov 18 21:19 LICENSE
-rw-rw-r-- 1 alan alan   359 Nov 18 21:19 project.clj
-rw-rw-r-- 1 alan alan   463 Nov 18 21:19 README.md
drwxrwxr-x 2 alan alan  4096 Nov 18 21:19 resources/
drwxrwxr-x 3 alan alan  4096 Nov 18 21:19 src/
drwxrwxr-x 3 alan alan  4096 Nov 18 21:19 test/

然后在IntelliJ中做

File  ->  New  ->  Project from existing sources....

在弹出窗口中,导航到新目录,然后双击project.clj文件。

  1. 保留根目录相同(~/tmp/demo.sample
  2. 将选择保留为sample:0.1.0-SNAPSHOT(摘自project.clj
  3. 选择您的JDK(我希望至少是Java 10!)
  4. 保留项目名称相同(即sample
  5. 点击Finish

这时,您可以编辑project.clj来添加JUnit Deps或您想要的其他任何东西。然后,这将确定您需要在./test子目录树中进行的制作。


完成后

lein new app sample

您将在sample / project.clj中看到

(defproject sample "0.1.0-SNAPSHOT"
  :description "FIXME: write description"
  :url "http://example.com/FIXME"
  :license {:name "Eclipse Public License"
            :url "http://www.eclipse.org/legal/epl-v10.html"}
  :dependencies [[org.clojure/clojure "1.8.0"]]
  :main ^:skip-aot sample.core
  :target-path "target/%s"
  :profiles {:uberjar {:aot :all}})

上面只是裸露的骨头。

有关更多信息,请参见: