簡體   English   中英

Gradle:獲取Groovy測試腳本以使用輔助Java類

[英]Gradle: get a Groovy test script to use an auxiliary Java class

我正在嘗試找出如何在測試階段獲取Groovy測試腳本以導入Java類的方法...

具體來說,我想從這里使用JavaFXThreadingRule :.java文件(或者在這里包含在我的Java測試源路徑中),然后importimport到Groovy測試腳本中以用作注釋。

Groovy測試腳本路徑為src \\ test \\ ft \\ groovy \\ core \\ testscript.groovy。
.java文件是src \\ test \\ ft \\ java \\ core \\ JavaFXThreadingRule.java。
我在這兩者中使用的包裝行是“包裝核心”;
我在build.gradle中的“ sourceSets”子句如下所示:

sourceSets {
    main {
        java {
            srcDirs = ['src/main/java']
        }
    }

    test {
        java {
            srcDirs = ['src/test/ft/java' ]
        }
        groovy {
            srcDirs = ['src/test/ft/groovy', 'src/test/ut/groovy']
        }
    }
}

有趣的是,的build.gradle輸出顯示compileTestJava任務在運行之前compileTestGroovy任務......,但我得到

無法解析類core.JavaFXThreadingRule @第18行,第1列。import core.JavaFXThreadingRule ^

注意,我也嘗試過“ import JavaFXThreadingRule”-同樣的結果。

除了只想解決問題之外,我還想知道Gradle如何決定以什么順序執行任務compileTestJavacompileTestGroovy ...以及我是否不應該讓我的compileTestGroovy明確依賴於compileTestJava ...

多虧了蒂姆·耶茨(Tim Yates),我發現了將這個Java文件與Groovy文件一起放入的“解決方法” ...但是這個答案為我提供了另一個線索,然后我將build.gradle更改為這樣:

sourceSets {
    main {
        java {
            srcDirs = ['src/main/java']
        }
    }
    test {
        groovy {
            srcDirs = ['src/test/ft/groovy', 'src/test/ut/groovy', 'src/test/ft/java' ]
        }
    }
}

...的工作...無疑對Gradle的老手很明顯。

上面提到的問題和答案是關於應用程序代碼類(和Gradle任務)的。 除非某些Gradle專家可以另行說明,否則我假設Groovy測試編譯任務和Java測試編譯任務是完全分開的,並且無法“看到”彼此的類...

暫無
暫無

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

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