从启用fork的ant运行单元测试时,将忽略权限

时间:2013-07-02 11:56:48

标签: java unit-testing ant junit

根据http://ant.apache.org/manual/Tasks/java.html权限参数的定义,我看到了:

  

如果启用了fork,将忽略设置。

然而,这导致我的一个单元测试(使用PowerMock)在运行ant时失败。有没有办法改写这个?设置fork =“no”会导致jvm耗尽内存,并且增加permgen大小并不能解决这个问题。

1 个答案:

答案 0 :(得分:0)

看来这可以通过在ant目标中指定安全策略作为jvm参数来完成:

<jvmarg value="-Djava.security.manager" />   
<jvmarg value="-Djava.security.policy=tests/unit/security.policy" />

security.policy 文件中,我们可以单独授予权限,例如

grant{
   permission java.lang.RuntimePermission "setContextClassLoader";
};