我正在开发一个 Java 应用程序。我想在安全受限的 JVM 中运行它的单元测试,以阻止网络访问。
我-Djava.security.manager=default -Djava.security.policy=...file...
为JVM添加了选项,安全管理器有效。
我通过运行我的测试进行了几次迭代,查看发生了什么安全违规,并在策略文件中授予它。但是现在,我再也没有遇到任何安全违规行为了。相反,这个:
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running org.onebusaway.alexa.AuthedSpeechletTest
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.143 sec <<< FAILURE! - in org.onebusaway.alexa.AuthedSpeechletTest
org.onebusaway.alexa.AuthedSpeechletTest Time elapsed: 0.06 sec <<< ERROR!
java.lang.NoClassDefFoundError: org.junit.runner.Runner
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:364)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:274)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:238)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:161)
Running org.onebusaway.alexa.MainSpeechletEmptyTest
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.001 sec <<< FAILURE! - in org.onebusaway.alexa.MainSpeechletEmptyTest
org.onebusaway.alexa.MainSpeechletEmptyTest Time elapsed: 0 sec <<< ERROR!
java.lang.NoClassDefFoundError: org.junit.runner.Runner
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:364)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:274)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:238)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:161)
Results :
Tests in error:
JUnit4Provider.invoke:161->executeTestSet:238->executeWithRerun:274->execute:364 » NoClassDefFound
JUnit4Provider.invoke:161->executeTestSet:238->executeWithRerun:274->execute:364 » NoClassDefFound
Tests run: 2, Failures: 0, Errors: 2, Skipped: 0
我如何准确查看此处违反了哪些安全策略?(我尝试用 重新运行-X
,但这并没有透露任何新内容。)