Fight the Future

Java言語とJVM、そしてJavaエコシステム全般にまつわること

DbUnit の検索結果:

依存ライブラリもコミットしました

DbUnitNG プロジェクト日本語トップページ - SourceForge.JPですが、 Subversionに依存するライブラリもすべてコミットしました。 libディレクトリに入っています。 eclipseなら.projectと.classpathもコミットしているので、 それもチェックアウトしてもらうと便利です。 だいぶ面倒くささがなくなったと思うので、気軽にソースからでも使ってみてください!

DbUnitがバージョン2.3に!

DbUnitが2.3にバージョンアップしてます。 Some API changes, features added, bugfixes, performance improvements in assertions. See migration guide for additional help DbUnit - Changes Report Assertionクラスにアサートメソッドが追加されてる。 1. assertEqualsIgnoreCols(final IData…

@ITにTestNGの記事を連載します

…しようと思います。 DbUnitNGの今後 - Fight the Future{|じゅくのblog|} との宣言どおり、TestNGについて@ITさんで連載を始めました。計3回の予定です。 上司であるid:iad_otomamayがHibernateやSpringの連載を@ITにしていた関係で、担当者の方を紹介してもらいました。 とにかくTestNGを普及させていきたいと思います。 今回はデファクトであるJUnitと比較をして、TestNGを理解してもらおうというコンセプト…

DbUnitNGの今後

TestNGとDbUnitNGを連携するライブラリDbUnitNGは、考えていた機能は作り終えました。 今後は、ライブラリのテストケースを増やして、バグを修正します。 多くの機能を提供するライブラリでもないので、使いやすいと思います。 提供する機能は、大きく3つです。 DbUnitのSetUpとTearDownのアノテーション化 BeanのListをDbUnitのDataSetに変換し期待値とアサート 期待値とDBテーブルのアサートをアノテーション化 これだけしかしないですけ…

MacにMaven2をインストールする

mac

こちらを参考にさせていただきました。 へびのぬけがら: Mac OS XにMaven2をインストールさて、DbUnitNGをMavenizeしようと思います。

TestNG+DbUnitライブラリはApache License, Version 2.0に対応しました

DbUnitNG プロジェクト日本語トップページ - SourceForge.JPのライセンスをApache License, Version 2.0にきちんとしました(つもりです)。 以下のことをしました。 LICENSE.txtをトップディレクトリに配置する ソースコードにライセンスへのリファレンスを追加する 参考 http://www.apache.org/licenses/ それに伴いバージョンを0.4.1としてリリースしてます。 ライセンスに詳しい方で何か不備があれ…

DbUnitNG0.4リリース!

TestNG+DbUnitライブラリであるDbUnitNGのバージョン0.4をリリースしました。 ダウンロード - DbUnitNG - SourceForge.JP DbUnitNGは、TestNGとDbUnitを連携させ、SetUpやTearDownのアノテーション化、BeanのListをDbUnitのデータセットへ変換といったことをする小さなライブラリです。 今回の追加点は以下のとおり。 DBに接続して、任意のテーブルあるいは全テーブルをDbUnitの形式でファイルに出…

DbUnitライブラリでDBデータをXML,Excel,CSVに出力するクラスを作りました

…あるいは全テーブルをDbUnitの形式でファイルに出力するユーティリティクラスを作りました。 org.dbunitng.data.TestDataFileMakerクラスです。 使い方は簡単です。 public TestDataFileMaker(String driver, String url, String userName, String password, String schema) { コンストラクタにJDBC接続に必要な情報を渡します。スキーマは特に必要なけれ…

DbUnitライブラリでCSV形式のファイルにも対応しました

TestNG+DbUnitライブラリDbUnitNGで、初期値や期待値のファイルとしてCSVにも対応しました(他はXMLとExcel)。 意外に知らないDbUnitでCSVを使う方法 - Fight the Future じゅくのblogにあるように、DbUnitではCSVファイルの場合「table-ordering.txt」というファイルが必須なので、このファイルをアノテーションに指定した場合、CSVとして処理します。 「table-ordering.txt」は定数としてD…

DbUnitのCSVでnullを扱う

値としてnullとそのまま書くだけでOK。 row[col] = row[col].equals(CsvDataSetWriter.NULL) ? null : row[col]; public static final String NULL = "null"; こんな定数もあるから、きちんとダブルクォートもエスケープしてくれるみたい。 private static final String QUOTE = "\""; private static final String…

意外に知らないDbUnitでCSVを使う方法

「dbunit csv」で検索してもヒットしなかったので書いておく。 DbUnit2.1から、初期値や期待値をCSVファイルに書くことができる。XMLやExcelの代わりに。 使い方はとても簡単。 テーブル名.csvというファイルを作成する(EMPテーブルならemp.csv) CSVファイルの1行目に列名、2行目以降にデータを記述する 複数のテーブルにデータを入れたい場合、CSVファイルも複数作成する 「table-ordering.txt」というファイルを作成する txtフ…

@TableAssertでクエリをファイルに書けます

TestNG+DbUnitライブラリであるDbUnitNGで、DbUnitライブラリ@TableAssertでDBとアサートできます - Fight the Future じゅくのblogにある@TableAssertに機能を追加しました。結果をDBから取得するクエリをプロパティファイルに記述できるようにしました。 @TableAssert(names = "dept", pathname = "insert_expected.xml", propertyFilePath="…

@TableAssertだと何がいいのか

…るTestNG + DbUnitライブラリでDBとのアサートをアノテーションで指定できるわけですけど。 @TableAssert(names = "dept", pathname = "insert_expected.xml") @SetUpOperation(pathname = "dept.xml", value = DatabaseOperationType.DELETE_ALL) public void testTableAssert() { insert(); } …

DbUnitライブラリ@TableAssertでDBとアサートできます

DbUnitNG プロジェクト日本語トップページ - SourceForge.JPで期待値のファイルとデータベースのテーブルをアサートするアノテーションを作りました。 @TableAssertです。 こんな感じ。 @TableAssert(names = "dept", pathname = "insert_expected.xml") @SetUpOperation(pathname = "dept.xml", value = DatabaseOperationType.D…

DbUnitライブラリで期待値nullはこう表します

<?xml version='1.0' encoding='UTF-8'?> <dataset> <DEPT DEPTNO="10" DNAME="[null]" LOC="NEW YORK"/> </dataset> [null]と記述すると、nullとして扱います。 AssertionHelperクラスを使ってアサートする場合です。 内部的にはReplacementDataSetを使っています。

DbUnitNG0.3リリース!

DbUnitNG プロジェクト日本語トップページ - SourceForge.JP 期待値ファイルからデータセットを作成する際に、ReplacementDataSetを使用するようにしました。 @SetupOperationにおいてテストスイート全体でデフォルトのでDatabaseOperationを設定できるようにしました。 データベースへの接続情報をアノテーションでも設定できるようにしました。

TestNG ML(英語)に投げてみた

…c8c9, org.dbunitng.listeners.DbUnitNGTestListener@db3aac, org.testng.TestNG$ExitCodeListener@e90abf, org.testng.TestListenerAdapter@c0b3d1] I'd like to add my listener class(DbUnitNGTestListner) before RemoteMessageSenderTestListener class.…

TestNGプラグインのリスナーより順序を前で自分のリスナーを登録したい

…c8c9, org.dbunitng.listeners.DbUnitNGTestListener@db3aac, org.testng.TestNG$ExitCodeListener@e90abf, org.testng.TestListenerAdapter@c0b3d1]RemoteMessageSenderTestListenerがTestNGプラグインのリスナーであり、 このリスナーが先にきているため先ほどのようにeclipseのUIが先に変わってしまう。 Test…

@TableAssertでアサートしたかったけど、失敗

…こう出力される。 [DbUnitNGDatabaseOperation] [DEBUG] Database Operation is DELETE_ALL. [DbUnitNGDatabaseOperation] [DEBUG] Database Operation is DELETE_ALL. PASSED: testTableAssert PASSED: testTableAssert2 ==========================================…

DbUnitで読み込むファイルの値にnullを設定する

DbUnitでは初期値や期待値をXMLやExcelに記述することができる。 ただ、nullを表現したいときは困ってしまう。 たとえばXMLで次のように記述したとする。 <?xml version='1.0' encoding='UTF-8'?> <dataset> <HUMAN NAME="jyukutyo" NULLCOLUMN="" /> </dataset> この場合、NULLCOLUMNはnullではなく空文字となる。 本当にそうなるかサンプルプログラムで読み込んで出…

DbUnitでSQL文の結果をそのままデータセットにする

public static void main(String[] args) throws Exception { JdbcDatabaseTester tester = new JdbcDatabaseTester( "com.mysql.jdbc.Driver", "jdbc:mysql://127.0.0.1/testframework", "root", "root"); QueryDataSet dataSet = new QueryDataSet(tester.g…

SQL文からテーブル名にマッチさせる正規表現

.*\s+from\s+(\w+\.)?(\w+).*select * from jyukutyo.emp where empno = 1; select * from emp where empno = 1; だとgroup(1)で「emp」が取れます。 スキーマ名を含める場合はこっち。 .*\s+from\s+(\w+(\.\w+)?).*元ネタはDBUnit Made Easy - O'Reilly ONJava Blog。

TestNGでXMLを使わずにテストを実行する

…tener(new DbUnitNGTestListener()); testNG.addListener(new PerformanceListener()); TestListenerAdapter adapter = new TestListenerAdapter(); testNG.addListener(adapter); testNG.setTestClasses(new Class[] { PerformanceTest.class }); testNG.run…

DbUnitライブラリでデフォルトのDatabaseOperationを指定できます

…OperationでDbUnitのDatabaseOperationを指定できるわけですが、 テストメソッドごとに毎回指定するのは手間なので、 テストスイート全体でデフォルトを設定できるようにしました。 接続情報と同様に、 testng.xmlか@DbUnitNGアノテーションで指定することができます。 もちろんデフォルトを指定しないこともできます。こんな感じです。 @BeforeSuite @DbUnitNG(driver = "com.mysql.jdbc.Driver"…

DbUnit + TestNGライブラリDbUnitNGプロジェクトWiki更新しました

DbUnitNG Wiki - SourceForge.JP ブログに書いていたことはすべてWikiに転載してます!

DbUnitライブラリで接続情報をアノテーションにしました

DbUnitNG プロジェクト日本語トップページ - SourceForge.JPで、データベースへの接続情報をアノテーションでも設定できるようにしました。 と同時に、スキーマも記述できるようにしました。 さらに、JDBCのURLから判断して、DbUnitのIDataTypeFactoryを自動的に設定するようにしました(後述)。ライブラリDbUnitNGでは接続情報を設定する方法が2つあります。 testng.xml アノテーション XMLだとこんな感じです。 <!DOCT…

DbUnitNG0.2リリース!

…グを修正しました! DbUnitNG プロジェクト日本語トップページ - SourceForge.JP AssertionHelperクラスを使えばラクにアサートすることができます。 List<Dept> deptList = deptDao.listAllDept(); AssertionHelper.assertEqualsOnlyColumnsInFile( deptList, getClass(), "dept.xml"); 単に内部ではリストをデータセットに変換して…

DbUnitライブラリ用のサンプルを作成しました

trunk/DbUnitNG/sampleとsampletestディレクトリ以下にあります。 sampleはiBatisを使ったデータベースアクセスアプリです。 なので、DbUnitNGの依存ライブラリに加えてiBatisのライブラリが必要です。 DBはMySQLを使っていますが、他のDBでも動くはずです。 必要なテーブルのcreate文や初期データはsampleのorg.dbunitng.sample.sqlパッケージに入っています。

ライブラリをソーシャルブックマークしてくれてる人が!

Livedoorクリップでライブラリをブクマしてくれてる人が! 1人だけど、超感激。

TestNG+DbUnitライブラリのパフォーマンス

…ckage org.dbunitng.sample.test; import java.util.List; import org.dbunit.DatabaseUnitException; import org.dbunitng.annotations.DatabaseOperationType; import org.dbunitng.annotations.SetUpOperation; import org.dbunitng.assertion.AssertionHe…