問題タブ [eclemma]

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.

0 投票する
1 に答える
1903 参照

java - JMockit (Delegate() のみ) で EclEmma (Eclipse プラグイン) を使用するとエラーが発生する

私は最近 JMockit を使い始めましたが、TDD とモッキングは初めてです。特定のクラス/メソッドのすべての行をテストしたことを確認するために、コード カバレッジを使用するのが好きです。

JMockit (Delegate() 機能) とコード カバレッジを試しているときに、次のエラーが発生しました。合格と不合格の両方のテストを含めています。

何か間違ったことをしているのかどうかわかりませんか?

他の誰かがこの問題に遭遇したかどうか、また利用可能な回避策や修正があるかどうかを知りたいです。

これが JMockit の問題なのか EclEmma の問題なのかさえわかりません。ありがとう。

私のセットアップ:

  • OS:WindowsXP
  • JDK-JRE: 1.7.0
  • JUnit: 4.11
  • Jモキット: 1.3
  • EclEmma: 2.2.1.201306092145
  • 日食: 3.6

失敗のトレース:

java.lang.IllegalArgumentException: 互換性のあるメソッドが見つかりません: getType(java.lang.Integer) at com.ps.jmockit.samples.DelegateCoverageTest$Dog.getAnimalType(DelegateCoverageTest.java:99) at com.ps.jmockit.samples.DelegateCoverageTest .coverageFails(DelegateCoverageTest.java:71)、sun.reflect.NativeMethodAccessorImpl.invoke0(ネイティブ メソッド)、java.lang.reflect.Method.invoke(Method.java:601)、sun.reflect.NativeMethodAccessorImpl.invoke0(ネイティブ メソッド) java.lang.reflect.Method.invoke(Method.java:601) で org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:49) で org.eclipse.jdt.internal.junit で.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) at org.eclipse.jdt.internal.junit.org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) の runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.メイン (RemoteTestRunner.java:197)


コード: (coverageFails() を EclEmma と一緒に使用すると、上記のエラーが表示されます)

0 投票する
1 に答える
717 参照

java - jUnit と DateFormat (EclEmma コード カバレッジ)

私はjUnitが初めてで、jUnitについての知識を深めようとしています。ウェブで検索しましたが、いくつかの疑問を解決するものは見つかりませんでした。

これはコードです:

これは jUnit4 テスト ケースです。

TestCase は問題なく正しく実行されますが、2 つの簡単な質問/問題があります。

1) メソッドの正しい機能のみをテストするのは正しいnullですか、それとも値や特定の例外もテストする必要がありますか?

2) EclEmmaStringConverterでコード カバレッジを実行すると、テスト ケースがクラスのコンストラクターをテストしていないため、75% のコード カバレッジが得られます。クラスはユーティリティクラスであるため、クラスコンストラクターをテストするStringConverterことは私の計画に含まれていないため、インスタンス化されません。StringConverterこれをコードカバレッジから除外する方法はありますか?

アドバイスをいただければ幸いです。ありがとう。

0 投票する
0 に答える
300 参照

java - Eclipse Kelper EclEmma コード カバレッジ除外

特定のパッケージを Eclipse コード カバレッジ ツール EclEmma から除外しようとしています。

この投稿を見つけましたEclEmmaとEclipseを使用して特定のクラスのスキャンを無視するにはどうすればよいですか? しかし、あまり役に立ちません。コード カバレッジの設定を変更しようとしましたが、結果はありません。-ix -com.foo.* のような引数を指定して実行カバレッジ構成を変更しようとしましたが、結果はありませんでした。

代わりに Maven を使用すると、JaCoCo Maven プラグインを使用できますが、その例が必要になります。

http://eclemma.org/userdoc/preferences.htmlのようなリンクだけで回答しないでください。

ありがとう!

0 投票する
2 に答える
2305 参照

java - テスト カバレッジ: アサーションをカバーするには?

編集: バグへの JeffStorey リンクが正しいようです。アサーションを有効にすると、コンパイラは追加のコードを生成します。最終的に、到達不能なブランチが 1 つ作成されます。

メソッドコンストラクターの1つにこれらのアサートがあります

私はこれを行うことでそれをカバーしようとしています

そして再び値で

Board (-4 , 2)Board (2, 2)

そのため、アサートとパスの両方で失敗する場所をテストしました。私が間違っていない場合、すべてのケースをカバーしていますが、コード カバレッジ ツールの eclEmma Eclipse プラグインを使用すると、完全にはカバーされていないと主張されます。私はすでに-ea日食のカバレッジ引数を持っているので、アサーションが有効になっています。私のテストは不完全ですか、それともアサーションが完全にカバーされていない可能性がありますか? ありがとう。

0 投票する
1 に答える
1434 参照

eclipse - Eclemma がレポートのエクスポート オプションを提供していない

私はある種の初歩的な間違いを犯していると確信していますが、私は今初めて EclEmma を使用していて、多数のガイドを確認しても、カバレッジ レポートをエクスポートする方法がわかりません。参考までに、これは Windows 8 x64 で Eclipse Kepler を使用しています (それ以上の情報が必要な場合はお知らせください)。

EclEmma が正常に実行されたことを確認でき、以下のように Coverage ビューにアクセスして操作できます。

EclEmma のビュー

ただし、レポート内の任意の場所を右クリックすると、[セッションのエクスポート] のオプションのみが提供され、[レポートのエクスポート] は提供されません。また、[ファイル] -> [エクスポート] ダイアログを使用してもうまくいかないようです。セッションを XML としてエクスポートし、いくつかの異なる構成を試みましたが、探していたコード カバレッジ レポートが得られませんでした。

エクスポートする前に、間違っていること、または確認する必要があることはありますか? 前もって感謝します。

0 投票する
1 に答える
2696 参照

java - 文字列 switch ステートメントを使用した Java 7 cobertura コード ブランチ カバレッジ

文字列に基づいて変化するJava 7内のswitch文を書いています。コードとテスト自体はかなり些細なことですが、何らかの理由で Cobertura (および Eclemma) の両方が、switch 内のブランチを見逃したことを示しています。

次のコードは、10 個のブランチのうち 3 個を見逃したことを示しています。

if/else ステートメントを使用して記述でき、テストはパスします。足りないものはありますか?このコードで 100% の分岐カバレッジを得られないのはなぜですか?