使用IntelliJ IDEA运行JUnit测试-“;java.security.AccessControlException“;
我正在尝试使用IntelliJ Idea 11.1运行JUnit测试。但是测试给出了不同的AccessControlException。其中一个在下面。但是这些测试在Eclipse中运行时没有问题使用IntelliJ IDEA运行JUnit测试-“;java.security.AccessControlException“;,java,unit-testing,junit,intellij-idea,Java,Unit Testing,Junit,Intellij Idea,我正在尝试使用IntelliJ Idea 11.1运行JUnit测试。但是测试给出了不同的AccessControlException。其中一个在下面。但是这些测试在Eclipse中运行时没有问题 Exception in thread "main" java.security.AccessControlException: access denied (java.lang.RuntimePermission setIO) at java.security.AccessControlCo
Exception in thread "main" java.security.AccessControlException: access denied (java.lang.RuntimePermission setIO)
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:374)
at java.security.AccessController.checkPermission(AccessController.java:546)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
at java.lang.System.checkIO(System.java:225)
at java.lang.System.setOut(System.java:147)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:202)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:63)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
我是否需要为IDEA测试运行程序设置某种特殊权限?如果是这样,怎么办?我自己也遇到了这个问题,至少为了让事情运行起来,我从
/jre/lib/security
复制了java.policy
文件,并在默认的grant
中添加了以下权限,以使测试在IntelliJ IDEA 2016.2下运行:
// To get tests working under IntelliJ 2016.2
permission java.util.PropertyPermission "idea.launcher.bin.path", "read";
permission java.lang.RuntimePermission "loadLibrary.C:\\Program Files (x86)\\JetBrains\\IntelliJ IDEA 2016.2\\bin\\breakgen64.dll";
permission java.util.PropertyPermission "idea.launcher.port", "read";
permission java.lang.reflect.ReflectPermission "suppressAccessChecks";
permission java.util.PropertyPermission "idea.is.junit5", "read";
permission java.net.SocketPermission "127.0.0.1:*", "connect,resolve";
permission java.util.PropertyPermission "user.home", "read";
permission java.io.FilePermission "C:\\Users\\Mark\\junit.properties", "read";
permission java.lang.RuntimePermission "setIO";
permission java.io.FilePermission "C:\\Users\\Mark\\AppData\\Local\\Temp\\*", "read";
permission java.lang.RuntimePermission "accessDeclaredMembers";
您需要更改一些路径以满足特定的用户需求。
有了这些更改,我还没有完全完成:我似乎仍然缺少一些特定于我自己的代码的权限(特别是:从我自己的代码中读取许多属性文件)。创建一个文件C:\utils\grant\u all.policy和内容
// Grant everyone all permissions:
grant {
permission java.security.AllPermission;
};
而且由于我不想只授予JVM上的所有权限,我已经更新了Mark Rotterveel解决方案,以允许在IntelliJ中进行调试。它只需要3个附加权限:
permission java.util.PropertyPermission "idea.launcher.bin.path", "read";
permission java.lang.RuntimePermission "loadLibrary.C:\\Program Files\\JetBrains\\IntelliJ IDEA Community Edition 2019.2\\bin\\breakgen64.dll";
permission java.util.PropertyPermission "idea.launcher.port", "read";
permission java.lang.reflect.ReflectPermission "suppressAccessChecks";
permission java.util.PropertyPermission "idea.is.junit5", "read";
permission java.net.SocketPermission "127.0.0.1:*", "connect,resolve";
permission java.util.PropertyPermission "user.home", "read";
permission java.io.FilePermission "C:\\Users\\David\\junit.properties", "read";
permission java.lang.RuntimePermission "setIO";
permission java.io.FilePermission "C:\\Users\\David\\AppData\\Local\\Temp\\*", "read";
permission java.lang.RuntimePermission "accessDeclaredMembers";
// Additional properties needed to allow debugging in IntelliJ
permission java.io.FilePermission "C:\\Program Files\\JetBrains\\IntelliJ IDEA Community Edition 2019.2\\bin\\breakgen64.dll", "read";
permission java.util.PropertyPermission "intellij.debug.agent", "read";
permission java.util.PropertyPermission "intellij.debug.agent", "write";
你在菜单上运行它们吗?您是使用Spring来运行它们,还是只使用简单的JUnit?你也在使用System.out。。。在你的测试中?似乎有人试图从堆栈traceDo中设置此设置,您使用custom
-Djava.security.policy
?@user846476是运行。我正在使用菜单中的Run命令运行它们。它是简单的JUnit。我检查了测试文件,没有系统。出。。。s@CrazyCoder不,我不使用该选项。您是否尝试过使用外部构建工具?马文,蚂蚁?这听起来像是个智力问题。我以前从未见过它。如果它在maven/ant中运行正常,那么我会假设测试设置正常,然后可能是IntelliJ问题。重新安装?