skillup

技術ブログ

Java

arquillianでの外部ライブラリ使用

投稿日:2015年8月3日 更新日:

現状、実務ではDBのテストでは基本的にarquillianを使っています。

arquillianとにかく、重いですね~。

まあglassfishを動かしているので仕方ないかもしれませんが、簡単なテストをするのに1分近くかかります。

このブログもarquillianの待ち時間で書いています。そうでないと待ち時間に耐えられないので・・・(汗)

そんなこんなであまり好きではないのですが(汗)、本日ライブラリが動かないというバグが発生しました。

Apache commonsのライブラリが動かないんです。(もちろんApache commonsだけではありません。依存状態にあるライブラリ全般が動きません。)

ライブラリが動かないといっても本来のプログラムの中にライブラリを使っている場合は問題ないんですが、テストコードの中に依存状態があるライブラリを書くとNodefClassDefFoundエラーがでます。

で、結構はまっており、最初はライブラリのスコープが間違っているのかな?と思ったのですが、いろいろやってみても駄目でした。

社長ともいろいろ相談し、結局はarquillianの上で動いている場合、クラスパスが通常の場合と異なっているためでした。(←この解釈間違ってるかも・・・)

ただarquillianのテスト環境でも通常の状態と同様の環境を再現することは可能です。

ライブラリの依存状態を解決する方法として下記のようにpomに記述してあげればOKです。

参考リンク

Arquillian用ArchiveへクラスとMaven Dependencyを楽に追加する

-Java
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

Javaのオブジェクト指向に関して

Contents1 staticメソッド2 アクセス修飾子3 抽象クラス3.1 オーバーライド(親クラスのメソッドを上書きすること)3.2 オーバーロード(同名メソッドを複数もつこと)4 interf …

no image

リソースファイルの読み込み

リソースバンドルは基本的にJSFから参照して呼び出すことが多いんですが、もちろんプログラム内からも呼び出すことはできます。 書き方も単純でリソースバンドルをインスタンス生成してメッセージのキーで呼び出 …

no image

テストコードの実装

以前、テストコードの大切さを力説しましたが、実際に書いてみると作業の安心度が全く違います。 やはりメソッド単位での確認やデバッグができるのは非常にありがたいです。また時間がたってもテストコードを見るこ …

no image

JSPでのカスタムタグ

前回のインク―ドですが、文字列以上の情報を渡すことはできませんでした。 いろいろ調べたり、上司に聞いてみるとカスタムタグという独自のタグを作る機能があるとのことでさっそく調査。 Contents1 カ …

no image

String,Integer,Booleanの相互変換

データベースにはbooleanでデータが入っているのに画面では0か1の数字でないと表示ができないときなどがあると思います。 そんな時に文字列と論理値、あるいは文字列と数値、数値と論理値の変換などをする …