java.lang.Exception:The@Rule';xyzFolder';必须实现MethodRule或TestRule

java.lang.Exception:The@Rule';xyzFolder';必须实现MethodRule或TestRule,java,junit,Java,Junit,我为“临时文件夹”定义了如下规则: @Rule public TemporaryFolder xyzFolder = new TemporaryFolder(); 在方法上: private void testMethod() { File testFile = xyzFolder.newFile("test"); } 但得到的例外是: java.lang.Exception: The @Rule 'xyzFolder' must implement MethodRule or Te

我为“临时文件夹”定义了如下规则:

@Rule
public TemporaryFolder xyzFolder = new TemporaryFolder();
在方法上:

private void testMethod() {
    File testFile = xyzFolder.newFile("test");
}
但得到的例外是:

java.lang.Exception: The @Rule 'xyzFolder' must implement MethodRule or TestRule.

测试方法应该是公共的,以便作为测试用例运行并正确解释规则

 @Test
 public void testMethod() {
     File testFile = xyzFolder.newFile("test");
 }

但是,在不提供更多代码细节的情况下,我唯一能建议的另一件事是检查您是否使用了JUnit及其org.JUnit.rules.temporary文件夹的正确版本,而不是其他内容。

将“implements TestRule”或“implements MethodRule”添加到类xyzFolder中 如“xyzFolder实现TestRule/MethodRule”。 这将解决错误,稍后您必须根据您的需要实现未实现的方法,看看这个
了解更多详细信息。

这听起来像是类加载器冲突。您的项目中是否有多个JUnit版本?请向我们展示一个。根据给定的信息,我们可能无法找到问题的解决方案,特别是如果您的OP中没有包含这样的信息,即该方法是从实际测试方法中调用的,并且在@test public void testxyz(){testMethod()}中调用了类似的stuffTest方法。好的,我已经编辑了我的答案。如果您能向我们展示更多的代码,我们可以尝试提供帮助