問題タブ [junit]
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.
java - 最初にテストに失敗した後にjunitテストを停止する方法
テストが失敗した後に実行中のjunitテストを停止させる方法はありますか?
java - Javaでオブジェクトメソッドコントラクトを維持するためのAutomagicユニットテスト?
Javaアプリケーションを開発するとき、私はしばしばObjectメソッド(通常はequalsとhashCode)をオーバーライドします。すべてのクラスのObjectメソッドのコントラクトを順守していることを体系的に確認する方法が必要です。たとえば、等しいオブジェクトの場合、ハッシュコードも等しいことを表明するテストが必要です。私はJUnitテストフレームワークを使用しているので、できれば、これらのテストを自動的に生成できるJUnitソリューション、またはすべてのクラスにアクセスして契約が守られていることを確認できるテストケースが必要です。
JDK6とJUnit4.4を使用しています。
java - JUnit および junit.framework.TestSuite - 実行可能なメソッドがない
私はいくつかの単体テストを作成しました(テストクラスで)。私が読んだチュートリアルでは、単体テスト用の TestSuite を作成する必要があると書かれていました。
奇妙なことに、ユニット テストを直接実行している場合 (テスト クラス - Run as jUnit テストを選択している場合) はすべて正常に動作していますが、テスト スイートで同じことを試みている場合は常に例外があります: java.lang.例外: 実行可能なメソッドはありません。
テスト スイートのコードは次のとおりです。
これが機能しない理由はありますか?
java - JUnit 3.x のパラメータ化されたテスト ケース クラス
パラメータ化できるようにしたい JUnit 3.x TestCase があります。TestCase
全体(フィクスチャを含む)をパラメータ化したいと思います。ただし、このTestSuite.addTestSuite()
メソッドではTestCase
オブジェクトを渡すことはできず、クラスのみを渡すことができます。
テストの実行時に作成される MyTestCase インスタンスにパラメーター (文字列) を渡すことができるようにしたいと考えています。現在のように、パラメーター値ごとに個別のクラスを用意する必要があります。
私はそれを無名のサブクラスに渡そうとしました:
ただし、これはアサーションで失敗します。
何か案は?問題を間違った方法で攻撃していますか?
java - 安全な公開のための単体テスト
Java で安全な公開の保証をどのように単体テストしますか?
具体的には:
メソッド getOrLoad(K key, ObjectLoader loader) を持つ Cache インターフェイスがあります。つまり、キャッシュが指定されたキーのオブジェクトを見つけられない場合、それを ObjectLoader インスタンスからロードする必要があります。ただし、キャッシュは、オブジェクトをローダーからロードしてキャッシュに入れるという行為が安全なパブリケーションを構成することを保証する必要があります。
私は現在、この Cache インターフェースの一般的な junit テストを書いている最中であり、Cache の実装がこの安全な公開の保証に準拠していることをどのようにテストするのだろうかと考えています。
何か案は?実際のコードは、実際のファイルを調べたい場合に備えて、コード リポジトリの test-systest モジュール部分にあります。
java - Windowsで長いJavaクラスパスを設定するには?
Windows XP コマンド ラインで特定の JUnit テストを手動で実行しようとしていますが、クラス パスに非常に多くの要素が含まれています。次のようないくつかのバリエーションを試しました。
(他のバリエーションでは、クラスパスをすべて 1 行に設定し、-classpath を介して java への引数としてクラスパスを設定します。) それは常にコンソールに行き着き、このエラーで手を投げます:
これはかなり大規模な既存のレガシー プロジェクトをテストする JUnit テストであるため、ディレクトリ構造をより合理的なものに再配置することについての提案はありません。これらのタイプのソリューションは今のところ公開されていません。このプロジェクトに対して簡単なテストを作成し、コマンド ラインで実行しようとしましたが、コンソールが邪魔をしています。ヘルプ!
oracle - 断続的な ORA-12519 (TNS: 適切なハンドラが見つかりません) エラーの原因
Oracle 10 データベース (継続的インテグレーション サーバーとして Hudson を使用) の前で Weblogic 9 に対して Junit 4 テスト スイートを実行していますが、スクリプトのティアダウン中に ORA-12519 クラッシュが発生することがあります。ただし、エラーは非常に断続的です。
- 通常、同じ Test クラスで発生します
- 同じテストケースで常に発生するとは限りません(合格する場合もあります)
- 同じ数のテスト ケース (3 ~ 9 のどこでも) では発生しません。
- まったく起こらないこともある、すべてが過ぎ去る
これがローカルで発生しないことを保証することはできませんが (もちろん、同じデータベースに対して実行する場合)、問題なく同じクラスのスイートを複数回実行しました。
何か案は?
java - JMockitカバレッジを使用しようとしたときのNoClassDefFoundError
JMockitのコードカバレッジ機能を使おうとしています。JVMパラメーターの使用
テストを実行できます(jmockit.jarとcoverage.jarはクラスパスにあります)。残念ながら、ログファイルには次のように記載されています。
...カバレッジファイルは生成されません。JMockit Coverageを機能させる人はいますか?もしそうなら、このエラーの原因について何か考えはありますか?ありがとう...
回答:(Eclipse実行構成の)ユーザーエントリだけでなく、ブートストラップエントリにカバレッジを追加する必要がありました
実際の回答実際の回答は、JUnit 3でテストを実行していたということですが、カバレッジにはJUnit 4が必要です。これで問題が修正され、ブートストラップエントリを追加する必要はありませんでした。
java - TestCaseからTestSuiteに拡張されていないJUnit4テストを追加するにはどうすればよいですか?
JUnit 3では、単に
ただし、MyTestがTestCaseを拡張しないJUnit 4テストである場合、これは機能しません。一連のテストを作成するには、代わりに何をすべきですか?
eclipse - Eclipse でテストを実行するときにカスタム JUnit テスト ランナーを使用する方法はありますか?
Eclipse 内の標準 JUnit テスト ランナーの代わりに、JMockitのインクリメンタル テスト ランナーを使用したいと考えています。これを行う方法はありますか?
編集JMockit 開発者への電子メールに対して次の回答を受け取りました。
「-javaagent:jmockit.jar=incjunit4」などのコマンド ラインを使用して JVM を起動する必要があります。ここで、「incjunit4」は、増分 JUnit テスト用の外部ツールをロードすることを指定します。インクリメンタル テスト ツールに必要なランタイム情報を提供するため、カバレッジ ツールも使用する必要があります。実際、主にこの機能がまだ完全に開発されていないため、それに関するドキュメントはありません。
残念ながら、これはまだ私にはうまくいきません。インクリメンタル テスト ランナーを動作させた人はいますか?