簡體   English   中英

如何在 intellij 中為 play 框架應用程序運行單元測試

[英]how to run unit tests for a play framework application within intellij

我嘗試在 intellij 中的play 框架 java starter 示例上運行單元測試,但它似乎不起作用。

我下載了該項目並通過 SBT 導入將其導入 intellij。

當我嘗試從 intellij 運行測試時,我得到“找不到類:“UnitTest”空測試套件”

在此處輸入圖片說明

如果我運行 SBT 測試任務,則測試正在運行並通過。

當我在運行 SBT 測試任務后從 intellij 運行測試時,測試運行並通過。 這就像intellij沒有編譯項目

我正在使用 intellij 終極版 2018.2 版並擁有 scala 插件 (v 2018.2.11)

我怎樣才能使這項工作?

編輯(響應@hce)

我將intellij升級到最新版本:2018.3.2(找不到2018.3.5)但我仍然遇到類似的問題。

我從一個新下載的入門項目開始。 導入 sbt 項目:

在此處輸入圖片說明

在此處輸入圖片說明

然后嘗試編譯並得到一個錯誤:

在此處輸入圖片說明

我設法通過配置intellij 使用play2 編譯器來解決編譯問題(“為這個項目使用play2 編譯器”)

在此處輸入圖片說明

然后我嘗試運行測試,但 Intellij 抱怨它找不到類

在此處輸入圖片說明

這是由 intellij 創建的運行配置。 類名(UnitTest)被標記為紅色...

在此處輸入圖片說明

你的環境有什么不同嗎?

我的過程有什么問題嗎?

我使用 IntelliJ 2018.3.5 和 Scala 插件對其進行了測試。 它運作良好。 所以原因似乎在於您的項目配置。 如果您可以提供運行/調試配置和設置,將會很有幫助。 有很多原因。 你可以試試以下...

  • 確保您使用 java 1.8 作為項目 jdk。
  • 使用 sbt 1.2.1
  • 檢查您的運行/調試配置。
  • 文件 -> 使緩存無效/重新啟動...
  • 構建 --> 重建項目
  • 運行 --> Edit Configurations / remove Junit / Apply 並重新啟動您的測試。 自動創建新的 Junit 配置

編輯:在@NirBrachel 的評論之后,解決方案是使用 sbt-shell 來編譯項目。 (我建議清理、編譯和測試)。

sbt-shell 清理、編譯、測試

您可以在導入期間自動執行此操作:

![激活 sbt-shell 進行導入和構建

為什么? 信息:默認情況下禁用播放框架 2.x 的 sbt 編譯

您可以嘗試在設置中激活 Play2 框架...

在此處輸入圖片說明

警告:這個設置對我不起作用,因為它不是由 IntelliJ 保存的。 我還沒有找到原因。

編輯請參閱此鏈接以了解可能的原因。

我使用 Scala 插件和 Play 框架。 我可以通過 3 種方式運行測試:

  • 從 IDE 簡單運行 1 測試(但我無法通過這種方式運行包中的所有測試)
  • 從 sbt 運行測試
  • 使用此配置運行測試(它允許運行具有覆蓋率的測試):

對不起我的英語不好。

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM