[英]FileNotFoundException with PowerMock + Drools + JBoss
有没有人使用过“ PowerMock + Drools + JBoss”组合?
当我尝试在JUnit测试(JUnit 4.10)中使用单元测试Drools规则时,我会加载drl规则knolage kobtext:
KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
kbuilder.add(ResourceFactory.newClassPathResource("com/mycompany/myproject/rooles.drl"), ResourceType.DRL);
而且效果很好。 org.drools.io.impl.ClassPathResource包含3个类加载器:
但是当我添加
@RunWith(org.powermock.modules.junit4.PowerMockRunner.class)
单元测试org.drools.io.impl.ClassPathResource包含2个类加载器:
并且测试失败并显示java.io.FileNotFoundException:
java.lang.RuntimeException: java.io.FileNotFoundException: 'com/mycompany/myproject/rooles.drl' cannot be opened because it does not exist
at org.drools.compiler.PackageBuilder.addKnowledgeResource(PackageBuilder.java:638)
at org.drools.builder.impl.KnowledgeBuilderImpl.add(KnowledgeBuilderImpl.java:28)
...
Caused by: java.io.FileNotFoundException: 'com/wiley/cms/jqa/service/lifecycle/lifecycle.drl' cannot be opened because it does not exist
at org.drools.io.impl.ClassPathResource.getURL(ClassPathResource.java:128)
at org.drools.io.impl.ClassPathResource.getInputStream(ClassPathResource.java:109)
at org.drools.compiler.PackageBuilder.addPackageFromDrl(PackageBuilder.java:352)
at org.drools.compiler.PackageBuilder.addKnowledgeResource(PackageBuilder.java:538)
...
有人可以建议如何避免这个问题吗?
解决方案是添加@PowerMockIgnore(“ org.drools。*”)批注。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.