問題タブ [junit4]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
unit-testing - maven-surefire-pluginを使用して同じプロジェクトでJUnitとTestNGのテストを実行するには?
現在、両方のタイプのテストがありますが、「mvn テスト」と言うと、Junit ではなく TestNG テストのみを実行します。両方を次々と実行したい。何か案が ?
java - Mavenとの1つのプロジェクトでのJunit4とTestNG
それらを一緒に実行するために利用できるオプションはほとんどありませんが、JunitとTestNGに異なるプロファイルを使用することを選択しました。しかし、現在の問題は、テストケースの除外と包含にあります。
MavenのメインプロジェクトにtestNG依存関係を追加すると、すべてのJUnitがスキップされるため、別のプロファイルに配置することにしました。したがって、pom.xmlの次のエントリを使用して、default(main)プロファイルのTestNGテストをコンパイルから除外しています。
surefireプラグインについても同じです。したがって、メインプロファイルで正常に動作し、Junit4テストのみを実行します。しかし、testNGプロファイルを使用すると、コンパイルしなくてもtestNGテストは実行されません。私はそれらを実行するために以下のプロファイルを使用しています。
なぜそれがそれらを含まず、再度コンパイルしないのか誰かが知っていますか?
java - テスト クラスを変更せずに個々の JUnit テスト メソッドを除外しますか?
現在、自分のコードに対して別のプロジェクトの JUnit 4 テストを再利用しています。自動化された Ant ビルドの一部として、他のプロジェクトのリポジトリから直接それらを取得します。これは、最新バージョンのテストに対してコードをグリーンに保つことができるため、素晴らしいことです。
ただし、私のコードで絶対に渡さないと思われるテストのサブセットがあります。しかし、これらのテストに @Ignore アノテーションを追加し始めると、テスト実装の独自の別のコピーを維持する必要があり、これは本当にやりたくないことです。
テスト ソースを変更せずに個々のテストを除外する方法はありますか? これが私がこれまでに見たものです:
私が見る限り、Ant JUnit タスクでは、個々のテスト メソッドではなく、テスト クラス全体を除外することしかできません。
リフレクションを使用して元のテストをすべて動的に検索して追加し、実行したくないテストを明示的に削除するコードを追加する TestSuite をまとめることを検討しました。しかし、 TestSuite APIがテストを削除する方法を提供していないことに気付いたとき、私はその考えを捨てました。
元の Test クラスを拡張する独自の Test クラスを作成し、実行したくない特定のテストをオーバーライドして、@Ignore で注釈を付けることができます。次に、サブクラスで JUnit を実行します。ここでの欠点は、新しい Test クラスが元のプロジェクトに追加された場合、それらを自動的に取得しないことです。新しい Test クラスが元のプロジェクトに追加されるのを監視する必要があります。これはこれまでのところ私の最良の選択肢ですが、理想的ではありません。
私が考えることができる他の唯一のオプションは、とにかく悪いテストを実行し、失敗を無視することです. ただし、これらのテストは実行に時間がかかる (そして失敗する!) ため、まったく実行しないことをお勧めします。さらに、特定のテスト メソッドの失敗を無視するように Ant タスクに指示する方法がわかりません (繰り返しますが、個々のテスト クラスに対してそれを行う方法はわかりますが、メソッドについてはわかりません)。
junit4 - netbeans と openejb での ejb テストの問題
シンプルな sayHello() メソッドを使用したテスト ステートレス セッション ejb を使用して、ejb および war モジュールを使用して netbeans 6.7 EnterpriseApplication プロジェクトを作成しました。
また、ejb の単体テストを行うために、openEjb ライブラリーも追加しました。次のエラーが発生し続けることを除いて、すべて正常に動作します。
どういうわけかどこかからglassfishライブラリwebservices-tools.jarを取得していて、それを取り除く方法がわからないため、junitテストを実行しようとするたびに例外が大量に発生しないことがわかりました。
以前にこの問題に直面した人はいますか? それを解決するのを手伝ってもらえますか?
ありがとう。
java - assertArrayEquals(Object[] o1, Object[] o2) が見つかりません
私のセットアップ:
2 つのクラス配列 (Object[] としてキャスト) を渡そうとすると、「シンボルが見つかりません」というエラーが表示され、テスト ケースがコンパイルされません。
他の assert ステートメントに問題はありません。前述のとおり、JUnit 4.5 ライブラリを使用しています。
誰かがこれを修正する方法についての手がかりを持っていますか、またはこの風変わりな動作を観察しましたか?
Netbeans は、オートコンプリートによってこの関数宣言を見つけることができますが、それがどこにあるかを見つけることができないか、ソースに移動できません。
サンプルコード:
java - SpringJUnit4ClassRunner はテストごとに Bean を初期化しますか?
次のテストは、このテスト Bean が Spring によって 2 回初期化されることを示しています。一度だけであるべきなので、誰かがなぜそうなのか教えてくれることを願っています。テストは次のとおりです。
Bean ファイルは次のとおりです。
出力は次のとおりです。
java - junit4にdouble[]のAssert.assertArrayEquals()がないのはなぜですか?
Assert.assertArrayEquals()
Junit4には、double以外のすべてのプリミティブのメソッドがあるようです。
と
だがしかし
また
(後者はdoubleの可変範囲を説明するため)。そのような関数を書いてはいけない根本的な理由はありますか?
java - junit 3 のクラス分解?
JUnit 3を使用して記述された多くの統合テストがありますが、現在は4.4で実行しています。これらのいくつかは、クラス内のすべてのテストが完了した後に実行される TeaDown メソッドを必要とします (いくつかの共通リソースを解放するため)。
@AfterClass (org.junit) を使用して、junit 4 でこれを実行できることがわかります。ただし、TestCase (junit.framework.*) を拡張する既存の junit 3 テストにこれを混在させると、うまくいかないようです。[ところで、移行ツールはまだありますか? 質問264680は、1 年前には存在しなかったことを示しています。]
この種のものにjunit.extensions.TestSetupを使用するという言及を見てきました。これの私の簡単なテストはうまくいかないようでした。例はありますか?
java - プログラムで JUnit テスト ケースとスイートを生成することは可能ですか?
現在いくつかの表形式で取り込まれているビジネス ルールの複雑なセットに対して非常に大規模なテスト スイートを作成する必要があります (たとえば、パラメーター XYZ がそのようなものである場合、値は V1 と V2 の間にある必要があります)。各ルールには、名前と独自のセマンティクスがあります。
私の最終的な目標は、サブ テスト スイートに編成されたテスト スイートを作成し、各ルールのテスト ケースを作成することです。
1 つのオプションは、これらすべてのルールをテストとして実際にハードコーディングすることです。それは醜く、時間がかかり、柔軟性に欠けます。
もう 1 つは、ルール ファイルを読み取り、単体テストで Java クラスを生成する Python スクリプトを作成する方法です。できればこれは避けたい。もう 1 つのバリエーションは、Jython を使用することです。
理想的には、ファイルを読み取り、その中にサブスイートとテストを定義するテスト スイートが必要です。これらの各テストは、テーブル ファイルから取得した特定の値で初期化され、システムで固定のエントリ ポイントを実行し、期待値に基づいて結果に対して何らかのバリデータ関数を呼び出す場合があります。
Javaのみを使用してこれを実現する合理的な方法はありますか?
更新: 私たちの種類のルールをいくらか単純化したかもしれません. それらのいくつかは確かに表形式 (Excel スタイル) であり、他のものはよりあいまいです。私はおそらくこの問題を抱えた最初の人ではないので、一般的な質問は残っています.
eclipse - テストが Eclipse で TestCase(Junit) を拡張するときに、@Test アノテーションを使用してテストを実行できない
テストが Eclipse で TestCase(Junit) を拡張するときに、@Test アノテーションを使用してテストを実行できない
TestCase(jUnit) から拡張していない場合は正常に動作しますが、既存のコードは TestCase から拡張されているため、そのままにしておきたいと思います。