これまでEmbulkのPluginをいくつか書かせてもらってきましたが、初期の頃はテスト用のAPIが整備されていなくて後回しにしてきました。 この記事は、そろそろ書かねばという気持ちになり、奮闘した時のメモです。良かったら参考にしてくだい。
- Pluginの単体テストに焦点を絞ってます。クラスやメソッドの単体テストは普通に書けると思うので省略します。
- 現存するPluginのテストやEmbulkのコードを参考にして書いてますが、これよりいい方法があるかもなので知っている方がいたら教えて下さい。
- Encoder/Decoderでも同じ方法でテストできるのか試してません。(-> ためす)
- Javaを書き始めて、まだ日が浅いので作法などで問題有りましたら、連絡いただけると嬉しいです。
- 依存関係の追加
- EmbulkTestRunner を使ってテストを書いてみる
- MockParserPlugin.java
- カラム定義に従って定数を返す
- MockFormatterPlugin.java
- カラム定義に従って渡ってきた値をvisitするだけ
- 参考にしたサイトとか
- あわせて読みたい
build.gradle に以下のように依存関係を追加します。
// ...
dependencies {
compile "org.embulk:embulk-core:0.7.+"
provided "org.embulk:embulk-core:0.7.+"
// compile "YOUR_JAR_DEPENDENCY_GROUP:YOUR_JAR_DEPENDENCY_MODULE:YOUR_JAR_DEPENDENCY_VERSION"
testCompile "junit:junit:4.+"
testCompile "org.embulk:embulk-core:0.7.+:test"
}
// ...
- embulk-input-gcs
- embulk/embulk-standards/src/test/java/org/embulk/standards/TestRenameFilterPlugin.java
- Embulk Javaパーサープラグインの単体テスト
- EmbulkEmbed を使ってテストを書く方法です。テストを書く方法としてはおすすめしないですが、これを使って実装してみると、Embulkの用意しているテスト用APIの理解が深まります。
- テストコードのついているEmbulkプラグイン一覧(2015年6月版)
- embulk のプラグインを travis でテストする