2016-07-16 11 views
0

Ich beginne in letzter Zeit mit DbUnit und ich versuche einen sehr einfachen Integrationstest zu schreiben, nur um eine Tabelle mit 3 Zeilen zu füllen. Beim Lesen der DbUnit Getting Started Guide wird mir gesagt, dass ich eine Dataset-Datei erstellen soll. Mein Dataset XML-Datei sieht genauso aus wie folgt aus:JUnit + DbUnit - Kein Test gefunden beim Erweitern von DatabaseTestCase

<dataset> 
    <notaFiscal cliente="Cliente 1" valor="26.5" data='2016-04-04'/> 
    <notaFiscal cliente="Cliente 2" valor="30.5" data='2016-05-01'/> 
    <notaFiscal cliente="Cliente 3" valor="28.2" data='2015-08-11'/> 
</dataset> 

Dann habe ich eine Testklasse zu schaffen, die meine Prüfverfahren DBTestCase und implementieren erstreckt (kommentierten mit @Test, wie jeder andere JUnit-Testfall). Die Klasse I wird wie folgt erstellt:

public class GerenciadorNFTest extends DBTestCase { 

    private GerenciadorNotaFiscal gerenciador = new GerenciadorNotaFiscal(); 

    public GerenciadorNFTest(String name) 
    { 
     super(name); 
     // PBJDT is an abbreviation of PropertiesBasedJdbcDatabaseTester 
     // just for a better visualization 
     System.setProperty(PBJDT.DBUNIT_DRIVER_CLASS, 
      "org.postgresql.Driver"); 
     System.setProperty(PBJDT.DBUNIT_CONNECTION_URL, 
      "jdbc:postgresql://localhost:5432/dbunit"); 
     System.setProperty(PBJDT.DBUNIT_USERNAME, "postgres"); 
     System.setProperty(PBJDT.DBUNIT_PASSWORD, "123456"); 
    } 


    protected IDataSet getDataSet() throws Exception { 
     IDataSet dataSet = new FlatXmlDataSetBuilder().build(
      new FileInputStream("notas_fiscais.xml")); 
     return dataSet; 
    } 

    @Test 
    public void geraPedido() { 
     Pedido p = new Pedido("Diogo", 26d, 5); 
     gerenciador.gera(p); 
     NotaFiscal notaFiscal = gerenciador.recupera("Diogo"); 
     Assert.assertEquals(notaFiscal.getCliente(), "Diogo"); 
    } 

} 

Danach habe ich versucht, den Testfall zu laufen, aber bekam die folgende Fehlermeldung:

junit.framework.AssertionFailedError: No tests found in teste.GerenciadorNFTest 

    at junit.framework.Assert.fail(Assert.java:57) 
    at junit.framework.TestCase.fail(TestCase.java:227) 

Wenn ich versuchte, die extend DBTestCase, JUnit erkennen, den Test zu entfernen Fall und läuft normal, aber mit der Erweiterung hat es nicht. Ich habe versucht zu säubern und neu zu kompilieren, aber es hat nicht funktioniert. Ich habe auch versucht, den Test außerhalb der IDE, die ich benutze (Intellij Idea), auszuführen, aber wiederum hatte ich keinen Erfolg.

Hat jemand das gleiche Problem durchgemacht? Vielen Dank im Voraus. Jede Hilfe wird geschätzt.

Antwort

2

Es gibt JUnit 3 vs 4 Läufer Unterschiede, die die Ursache sein können (Sie erwähnen nicht JUnit und dbUnit Versionen, noch wie Abhängigkeit verwaltet sie). Und unterschiedliche Werkzeuge haben unterschiedliche laufende Standardanforderungen (z.B. verwendet Maven nur laufende Klassen als Tests mit dem Klassennamensuffix von "Test").

Beachten Sie, dass es nicht erforderlich ist, eine dbUnit-Klasse zu erweitern (ich tue es nicht), und das nicht zu tun, sollte das aufgetretene Problem beseitigen. Nur weiter unten diese Seite, die Sie erwähnt sind zwei Abschnitte beschreiben, wie:

Und die Kombination von beiden ist Was ich seit Jahren gemacht habe - habe meine eigene Eltern-Testklasse für gewöhnliche Sachen und dann DI (oder instanziiere) das gewünschte DBTestCase (normalerweise PrepAndExpectedTestCase).

+0

Danke! Es funktionierte mit einem IDatabaseTester. :) –