2016-07-16 24 views
0

最近、DbUnitを使い始めました.3行のテーブルを作成するための非常に簡単な統合テストを作成しようとしています。 DbUnit Getting Started Guideを読むと、データセットファイルを作成するよう指示されます。私のデータセットのXMLファイルは、正確に次のようになります。JUnit + DbUnit - 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> 

、私はDBTestCaseを拡張し、(他のJUnitテストケースのような@Testで注釈を付け、)私のテストメソッドを実装してテストクラスを作成する必要があります。私はJUnitのテストを認識し、extend DBTestCaseを削除しようとした場合

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) 

次のように私が作成したクラスは次のとおりです。その後

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"); 
    } 

} 

、私はテストケースを実行しようとしましたが、次のエラーを得ました大文字と小文字は区別され、正常に実行されますが、拡張はありませんでした。私はきれいにして再コンパイルしようとしましたが、動作しませんでした。私はIDEの外でテストを実行しようとしましたが(Intellij Idea)、もう一度私は成功しませんでした。

誰もこの同じ問題を抱えていますか? ありがとうございます。どんな助けもありがとう。

答えて

2

原因としてJUnit 3と4のランナーの違いがあります(JUnitとdbUnitのバージョンやその依存関係の管理方法については言及していません)。また、異なるツールでは実行時のデフォルト要件が異なります(例:Mavenのデフォルトでは、クラス名接尾辞が「Test」のテストとして実行されるクラスのみ)。

dbUnitクラスを拡張する必要はありませんが、そうしないと、問題が発生しなくなります。ただ、さらにあなたが言及したそのページダウン方法を説明する二つのセクションです:

の両方をされる組み合わせ私が何年もやってきたこと - 一般的なもののための私自身の親テストクラスを持っていて、目的のDBTestCase(通常はPrepAndExpectedTestCase)をDI(またはインスタンス化)します。

+0

ありがとうございます!これはIDatabaseTesterを使って機能しました。 :) –

関連する問題