Avatar billede akjaer Nybegynder
20. oktober 2006 - 09:50 Der er 6 kommentarer og
1 løsning

JUnit 4.1 TestSuite i Eclipse

Jeg skal have Eclipse til at køre et JUnit TestSuite. Jeg kan sagtens få det til at køre de enkelte unit tests.

Når jeg beder den om at lave et TestSuite laver den noget i stil med det her:


import junit.framework.Test;
import junit.framework.TestSuite;

public class AllTests {

    public static Test suite() {
        TestSuite suite = new TestSuite(...);
        //$JUnit-BEGIN$
        // her kan man bruge:
        //suite.addTest(...);
        //
        //suite.addTestSuite(...);
        //$JUnit-END$
        return suite;
    }

}


Uanset hvad jeg gør, kan jeg ikke få den til at afvikle selve mit TestSuite. Den siger, at der ikke er nogen runnable method, hvis jeg prøver at køre det på samme måde som en alm. unit test. Problemet burde vel være nemt at fikse, da Eclipse ser ud til at spille fint sammen med JUnit.
Avatar billede arne_v Ekspert
20. oktober 2006 - 14:04 #1
I 3.8.1 bruger jeg:

public class AllTests extends TestCase {
    public static Test suite() {
      ...
    }
}
Avatar billede akjaer Nybegynder
20. oktober 2006 - 14:30 #2
Ok - tak for hjælpen. Jeg ved ikke hvorfor den ikke "extender" TestCase automatisk i eclipse, men det hjalp mig i hvert fald forbi den fejl at bruge det.

Nu siger den "No tests found in AllTests". Noget kunne tyde på, at jeg tilføjer mine tests forkert til mit suite.

Jeg har prøvet med:
suite.addTestSuite(myClass.class);
og
suite.addTest(new myClass());

Hvor myClass extends TestCase.

Jeg kan sagtens køre myClass som en testcase for sig selv.
Nogen idé?
Avatar billede thums Praktikant
20. oktober 2006 - 15:09 #3
package dk.mobilethink.tcr.otap.database;

import junit.framework.Test;
import junit.framework.TestSuite;

public final class AllTests {
    private AllTests() {
    }

    public final static Test suite() {
        TestSuite suite = new TestSuite("evt.pakke.navn");
        suite.addTestSuite(fuldstændigStiTilTestKlasse);
        return suite;
    }

    public static void main(final String[] args) {
        junit.textui.TestRunner.run(suite());
    }
}
Avatar billede arne_v Ekspert
20. oktober 2006 - 15:21 #4
TestSuite suite = new TestSuite();
        suite.addTestSuite(test.TestC1.class);
        suite.addTestSuite(test.TestC2.class);
        return suite;

virker ho smig
Avatar billede akjaer Nybegynder
20. oktober 2006 - 15:59 #5
Spændende... Jeg prøvede at bruge JUnit 3.8 i stedet for 4.1, og så virkede det...

Med JUnit 4.1 kan man under run i Eclipse sætte sin Test Runner til JUnit 3, og så virker det med ens TestSuite på den måde, som arne v har skrevet det.

thums: Din metode virker fint med 4.1, men jeg var mere ude efter noget, der direkte er en del af eclipse. Tak for budet alligevel.

arne v: Smider du et svar? :)
Avatar billede arne_v Ekspert
25. oktober 2006 - 04:36 #6
jeg har lige prøvet selv - JUnit 4 i Eclipse 3.2 kan vist godt bruge lidt
forbedring

og et svar
Avatar billede akjaer Nybegynder
25. oktober 2006 - 12:11 #7
Tak for hjælpen :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester