Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用FEST的多个JUnit测试_Java_Swing_Junit_Junit4_Fest - Fatal编程技术网

Java 使用FEST的多个JUnit测试

Java 使用FEST的多个JUnit测试,java,swing,junit,junit4,fest,Java,Swing,Junit,Junit4,Fest,我已经编写了几个JUnit测试方法来测试我的JavaSwingGUI(使用)。我的课程采用以下格式: public class Tests { @BeforeClass public static void beforeClass() throws Exception { ... } @Before public void before() throws Exception { ... } @After public void after()

我已经编写了几个JUnit测试方法来测试我的JavaSwingGUI(使用)。我的课程采用以下格式:

public class Tests
{

    @BeforeClass
    public static void beforeClass() throws Exception { ... }

    @Before
    public void before() throws Exception { ... }

    @After
    public void after() throws Exception { ... }

    @AfterClass
    public static void afterClass() throws Exception { ... }

    @Test
    public void testA() { ... }

    @Test
    public void testB() { ... }

    @Test
    public void testC() { ... }

}
当我在Eclipse中运行这个类时,它只运行testA测试,而不是testB或testC。如果我注释掉testA,testB将运行——因此每次它似乎只运行第一个测试

Eclipse中的JUnit在完成第一个测试后显示“Runs:2/3”,但没有进一步的进展,也没有显示任何错误


我做错什么了吗?我正在使用JUnit 4.8.1和FEST 1.2。

您的代码片段似乎还可以


您可以检查每个@Test方法是否独立于其他方法,每个测试方法不应共享相同的上下文。确保
之前和
之后的
@行为正确。

我怀疑您在
testA
中有副作用,阻止
testB
中的代码运行。如果没有
testA
testB
中的详细信息,很难说发生了什么,但我可以给你一些一般性的指导

通过注释掉
testA
,您就有了一个良好的开端。执行此操作时,是否同时运行
testB
testC

试着深入到
testA
并慢慢注释
testA
下面的细节,直到测试同时运行
testA
testB
。一旦你这样做了,你至少知道问题在哪里

例如,如果您的代码看起来像:

public void testA() {
    doX();
    doY();
    doZ();
    // Assert stuff
    ...
 }
注释掉doX()之后的所有内容,看看会发生什么。如果可以,那么取消注释doY()
,看看会发生什么。如果它不起作用,那么深入到
doX()
,开始注释并再次运行测试

这将有助于你准确地指出问题所在的细节。如果你在弄明白这一点时仍然感到困惑,那么就回来问一个关于这些细节的问题


祝你好运找到你的虫子

谢谢你的帮助。在注释掉所有其他方法并发现每次都只运行第一个方法之后,我查看了beforeClass()和before()方法。这似乎是我如何使用FEST的问题。我在before()方法中使用了window=newframefixture(frame),而不是beforeClass()方法。在改变这个之后,它似乎工作正常。