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

nnsrf1az  于 2022-11-11  发布在  其他
关注(0)|答案(1)|浏览(167)

我在IntelliJ IDEA 2018.2.6 (Build #IU-182.5107.16)中使用Java 1.8创建了一个新的 backbone Leiningen项目。
我得到了一个Error: Could not find or load main class cucumber.api.cli.Main。我想用jUnit来代替,所以我没有尝试修复Cucumber依赖关系。

文件〉项目结构〉模块:。已验证测试文件夹是否标记为“测试”。
文件〉项目结构〉库〉+〉来自Maven:在我的模块中添加了带有可传递依赖项的junit:junit:4.12和JavaDocs。
运行〉编辑配置

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

当我运行所有测试时,我看到一条Empty test suite消息。
我尝试过重建项目,检查IntelliJ更新,该高速缓存无效,在项目配置模态中使用工作目录中的绝对路径。
当我在终端中运行lein test时,检测到样本测试,并打印出Assert。
从本质上讲,我如何使用jUnit测试运行器检测并运行我的测试,在Intellj中创建一个新的Leiningen Clojure项目?

  • 如果您需要它,我已经将示例项目的source code推送到Github。*
jfgube3f

jfgube3f1#

2020年更新:

我不再使用Leiningen模板来创建新项目(例如lein new app XXXXX),而是使用git克隆了一个模板项目,并将其用作新Clojure和ClojureScript项目的基础:

启动新项目的示例:

> git clone https://github.com/io-tupelo/clj-template.git  myproj
Cloning into 'myproj'...

此时,您可以编辑project.clj和源文件,以更改和/或添加名称空间等。

旧答案

我不从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
1.将选择保留为sample:0.1.0-SNAPSHOT(这取自project.clj
1.选择您的JDK(我希望至少是Java 17!)
1.项目名称保持不变(即sample
1.单击Finish
此时,您可以编辑project.clj来添加JUnit deps或任何其他您想要的东西。
在做了

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}})

上面只是光秃秃的骨头。
如需更多信息,请参阅:

相关问题