2012-11-10 34 views
6

我使用Netbeans與Maven和TestNG。當運行使用Maven保命插件測試,我可以設置一些配置參數,特別是用於我的測試(跟蹤)日誌記錄級別:如何讓Netbeans在運行測試時使用特定的JVM參數?

-Dorg.slf4j.simpleLogger.defaultLogLevel=trace 
-Dorg.slf4j.simpleLogger.logFile=System.out 

但是,運行特定的測試文件時(CTRL + F6)或測試方法(「運行集中測試方法」),Netbeans不使用surefire(這是好的),因此忽略這些參數。

有沒有辦法改變Netbeans在運行測試時使用的JVM參數?

這有點類似於this other post但我的問題是特定於Netbeans。

+0

NetBeans IDE中:添加/更改JVM命令行參數 你可以在這裏找到所有的指令:https://web.archive.org/web /20131217060421/https://blogs.oracle.com/charliebrown/entry/netbeans_ide_adding_changing_jvm – cristi

+0

我認爲這些是運行IDE的JVM的設置。測試在單獨的JVM AFAIK中運行。 – assylias

回答

6

通過NetBeans 7.2的文件(見Netbeans 7.2 changes, section Maven):

...現在測試文件始終運行Maven的默認情況下,就像測試項目......

的Netbeans的什麼版本你正在用嗎?可能你應該升級到7.2。

+0

好點 - 我在7.2.1 ...奇怪。 – assylias

+0

如果我創建一個新的Test類並運行'test file',它將使用Maven運行。如果我第二次運行它,它會運行Ant ...並且「運行集中測試」似乎總是與螞蟻一起運行。 – assylias

+0

這可能是一個Netbeans錯誤。如果不存在這樣的票據,您應該報告。 –

5

在項目屬性中,您可以在運行下創建配置文件。在這些配置文件中,您可以自定義VM選項。你可以在這裏添加你的參數,創建一個測試配置和運行配置。

+0

使用Maven時,似乎無法更改此選項(如果添加VM選項,請關閉屬性窗口,重新打開它:VM選項將再次爲空)。 – assylias

+0

我認爲這正是你在找什麼:http://stackoverflow.com/questions/10851534/how-to-set-system-properties-using-netbeans-7-2-and-maven –

+0

我的問題是,當我運行單個測試時,Netbeans不會調用Maven,而是直接運行測試(我想通過在後臺調用一個ant腳本)。所以Maven配置僅在測試整個項目時使用。我已經按照鏈接中描述的方式配置了Maven。 – assylias

1

在Maven的surefire插件配置中設置fork屬性。這將啓動一個新的JVM。現在,第二部分是如何讀取要在新JVM中使用的JVM參數。根據你想要做什麼,你可能需要從環境中讀取它們。

+0

我不認爲它與forkMode有關。我提到的測試是用螞蟻運行的。 – assylias

0

在我的情況下,我去了項目/屬性,然後「行動」類別。你會發現「測試文件」和「調試測試」動作。選擇它們並在「設置屬性」框中放置您需要的任何屬性。

不知道這是隻適用於Maven項目...

相關問題