I've written several JUnit test methods to test my Java Swing GUI (using FEST). My class is in the following format:
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() { ... }
}
When I run this class in Eclipse, it only runs the testA test, and not testB or testC. If I comment out testA, testB runs - so it seems to just run the first test each time.
JUnit in Eclipse shows 'Runs: 2/3' after it has completed the first test, but doesn't progress any further, or show any errors.
Is there something I'm doing wrong? I'm using JUnit 4.8.1 and FEST 1.2.
I suspect that you have a side effect in testA
that is blocking the code in testB
from running. It's hard to say what is happening without the details in testA
and testB
, but I can give you some general guidance.
You are off to a good start by commenting out testA
. When you do this, do both testB
and testC
run?
Try drilling down into testA
and slowly commenting out the details in what's underneath testA
until you tests run both testA
and testB
. Once you've done this, you at least know where the problem is.
For example, if you code looks something like:
public void testA() {
doX();
doY();
doZ();
// Assert stuff
...
}
comment out everything after doX()
and see what happens. If that works, then uncomment doY()
and see what happens. If it didn't work, then drill down into doX()
and start commenting out and re-running your tests again.
This should help you to pinpoint the details of where things are going wrong. If you are still stumped when you figure this out, come back and ask a question around those details.
Good luck finding your bug!