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
testAthat is blocking the code intestBfrom running. It’s hard to say what is happening without the details intestAandtestB, but I can give you some general guidance.You are off to a good start by commenting out
testA. When you do this, do bothtestBandtestCrun?Try drilling down into
testAand slowly commenting out the details in what’s underneathtestAuntil you tests run bothtestAandtestB. Once you’ve done this, you at least know where the problem is.For example, if you code looks something like:
comment out everything after
doX()and see what happens. If that works, then uncommentdoY()and see what happens. If it didn’t work, then drill down intodoX()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!