我創建了一個標準文件夾strucure的Maven項目,例如src/main/java,src/test/java等。如何從Maven的主文件夾訪問測試類?
我寫了一個ClassA類和一個測試類TestA。
從ClassA的主程序中,我指的是TestA的靜態成員。代碼編譯,但是當我運行它時,我得到:NoClassDefFoundError:TestA。
如何從ClassA內部訪問TestA?
我創建了一個標準文件夾strucure的Maven項目,例如src/main/java,src/test/java等。如何從Maven的主文件夾訪問測試類?
我寫了一個ClassA類和一個測試類TestA。
從ClassA的主程序中,我指的是TestA的靜態成員。代碼編譯,但是當我運行它時,我得到:NoClassDefFoundError:TestA。
如何從ClassA內部訪問TestA?
與其直接解決您的問題,我會建議重新考慮您的測試設計。 Maven是完全有能力對自己的運行測試,只需在命令行中輸入
mvn test
。如果你想運行一個測試類,進入
mvn test -Dtest=MyTest
爲一個單一的測試方法,使用
mvn test -Dtest=MyTest#shouldRunPerfectly
它還支持通配符,所以運行一些常用的測試,你可以類型
mvn test -Dtest=Integration*#shouldBeFaster*
。
大多數IDE允許直接通過快捷方式運行測試。如果我沒有記錯,這是移 + Alt鍵+X然後牛逼 Eclipse和移 + 按Ctrl + F10 的IntelliJ。的IntelliJ還採用了按Ctrl +移+Ť快捷鍵導航到你正在使用的類的測試。
Maven目錄結構強調測試與應用程序的分離,並且使您很難執行您計劃的任務。
tl; dr - 做它的maven方式
這看起來像是一個值得懷疑的設計決定。爲什麼你的主應用程序依賴於一個測試類? – kostja 2013-02-14 11:05:15
Btw。您遇到的問題是故意的 - 因此maven將測試與應用程序分開。 – kostja 2013-02-14 11:06:30
我從ClassA.main訪問TestA。這是一種方便 - 在開發ClassA時,它允許我輕鬆運行一些運行ClassA.main的測試。 – 2013-02-14 11:07:28