2012-11-10 25 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项目...

相关问题