Java JUnitTestWatcher没有';我似乎没有意识到测试已经开始了

Java JUnitTestWatcher没有';我似乎没有意识到测试已经开始了,java,junit,Java,Junit,下面的代码是从 我希望在执行测试时,在@rule中可以看到一个pass和fail,就像打印到控制台的@rule一样,而我什么也看不到。这让我相信我不明白这是怎么回事。如果有人能解释为什么这不起作用,我将不胜感激 import static org.junit.Assert.*; import org.junit.Rule; import org.junit.Test; import org.junit.rules.TestWatcher; import org.junit.runner.Des

下面的代码是从 我希望在执行测试时,在@rule中可以看到一个pass和fail,就像打印到控制台的@rule一样,而我什么也看不到。这让我相信我不明白这是怎么回事。如果有人能解释为什么这不起作用,我将不胜感激

import static org.junit.Assert.*;

import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TestWatcher;
import org.junit.runner.Description;

public class SimpleWatcher {
    private static String watchedLog;

    @Rule
    public TestWatcher watchman= new TestWatcher() {
            @Override
            protected void failed(Throwable t, Description d) {
                    watchedLog+= d + "\n";
                    System.out.println("Failed");
            }

            @Override
            protected void succeeded(Description d) {
                    watchedLog+= d + " " + "success!\n";
                    System.out.println("Pass");
            }
    };

    @Test
    public void fails() {
            fail();
    }

    @Test
    public void succeeds() {
    }
 }

该代码对我有效-它打印
失败
成功
。你确定你正在一个包含junit-4.9.jar的上下文中运行吗?我刚刚想到了这一点。现在检查我的罐子:/这就是问题所在!旧jar文件。谢谢:)