問題タブ [emma]
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.
junit - assertNull の代わりに assertTrue を使用するとブランチが見つからない
Java/Junit では、何らかのオブジェクトで null をテストする必要があります。条件をテストするにはさまざまな方法がありますが、ほとんどのテストで assertTrue を使用しています。assertTrue で null をチェックすると、EclEmma は 1 つのブランチのみをテストしていると述べています。
手動でステートメントを変数に解決すると (結果をブール値に設定して assertTrue に渡すなど)、コード カバレッジは assert で完了したと見なされますが、変数の初期化行では完了したと見なされません。
なぜこうなった?これは、 http://sourceforge.net/apps/trac/eclemma/wiki/FilteringOptionsで言及されているように、Java が明らかに追加する余分なバイト コードに関連していますか? 任意の解決策 (他の assert ステートメントの使用を除く)。
true をアサート:
true をアサート:
assertNull:
eclipse - EclEmma および AbstractTransactionalJUnit4SpringContextTests で jacocoData が欠落している
EclEmma 2.1.0.201202261248 を使用して、DAO の統合テスト カバレッジを測定しようとしています。残念ながら、AbstractTransactionalJUnit4SpringContextTests を拡張するテスト (つまり、Spring フレームワークの一部を実際に使用するもの) は、次の例外をスローします。
07:35:11 ERROR [main] (ASMLogger.java:72) - 例外がスローされました < findByFilter > 例外メッセージがプロパティを解決できませんでした: $jacocoData of: com.asentria.asm.persistence.krp.ProductData with params :: DataFilter{ SerialNum:66,KeyNum:1967,Index1:1,Index2:2,HasPendingValue:null,OrderByDesc:null,OrderByAsc:null,Class:class com.asentria.asm.filter.ProductDataFilter} org.hibernate.QueryException: 解決できませんでしたプロパティ: $jacocoData の: org.hibernate.persister.entity.AbstractPropertyMapping.propertyException(AbstractPropertyMapping.java:81) の com.asentria.asm.persistence.krp.ProductData org.hibernate.persister.entity.AbstractPropertyMapping.toType(AbstractPropertyMapping) .java:75) org.hibernate.persister.entity.AbstractEntityPersister.getSubclassPropertyTableNumber(AbstractEntityPersister.java:1468) で ...
永続性の奇妙な組み合わせがあります。Hibernate を直接使用する 1 つのスプリング管理コンテキストと、Spring によって管理されないが、実装には Hibernate も使用する 1 つの JPA 準拠コンテキストです。
EclEmma が jacocoData フィールドを注入していることは知っていますが、問題を修正する方法がわかりません。
これをトラブルシューティングする方法のアイデアなど、提案をいただければ幸いです。
java - 特定の行を無視するために、Eclipse で Emma カバレッジ ツールを取得することは可能ですか?
単体テストを使用して各テストのカバレッジを確認するときに、Eclipse で Emma カバレッジ ツールを使用しています。ただし、特定の行は、抽象クラスのクラス宣言の瞬間にはカバーされません。
エマにこの行をカバーしてもらうか、できれば無視することはできますか?
ありがとう、アレクセイ・ブルー。
java - Ubuntu で Eclipse を使用して Emma を実行する
Eclipse で Emma カバレッジ ツールを使用しようとしていますが、少し混乱しています。
そこで、emma.jar と emma_ant.jar を /usr/lib/jvm/java-6-openjdk-common/jre/lib/ext/emma/ ディレクトリに追加し、JRE: java-6-openjdk を使用して Eclipse で Java プロジェクトを作成しました。
build.xml サンプル ファイルをプロジェクトにコピーし、emma.dir プロパティを /usr/lib/jvm/java-6-openjdk-common/jre/lib/ext/emma/ に編集しました。
次に、.jar ファイルを作成し、Emma で実行しようとすると、次のようになります。
java emmarun -jar HelloWorld.jar
私はこれを得る:
スレッド「メイン」での例外 java.lang.NoClassDefFoundError: emmarun 原因: java.lang.ClassNotFoundException: emmarun at java.net.URLClassLoader$1.run(URLClassLoader.java:217) at java.security.AccessController.doPrivileged(Native Method) ) java.net.URLClassLoader.findClass(URLClassLoader.java:205) で java.lang.ClassLoader.loadClass(ClassLoader.java:321) で sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294) で java .lang.ClassLoader.loadClass(ClassLoader.java:266) メイン クラスが見つかりませんでした: emmarun。プログラムは終了します。
ご協力いただきありがとうございます!
java - EMMAコードカバレッジを実行できません
JavaSE開発キット7u3をインストールしています
私はこれに似たトピックのいくつかを経験しました(たとえば、「java」は成功し、「java emmarun」は失敗します)が、私の問題は、EMMAがまったく機能しないことです。私が走った後:
それは常に言う:
コンパイルは正常に実行され( "javac Main.java")、アプリケーションは機能しています( "java Main"から期待される出力が得られます)。Main.javaのコードは単純なHelloWorldアプリケーションです。
サンプルコードでemmarunを実行して、機能するかどうかを確認したかっただけです。まあ、そうではありません。私が間違っていることについて何か考えはありますか?
java - Emmaコードカバレッジレポートからのjunitテストクラスのフィルタリング
テストを正しく構築および生成するemmaコードカバレッジスクリプト(antを使用)を使用するプロジェクトがあります。
私は2つのパッケージcom.myproject.abctest.com.myproject.abcを持っています
すべてのjunitテストはtest.com.mywebsite.abcパッケージに含まれています。私の目標は、test.com.myproject.abcパッケージをレポート(coverage.xml)に含めないことです。カバレッジフィルターに関するemmaのドキュメントを読み、他のいくつかの例を確認しましたが、インストルメンテーションにjunitテストを含めないと機能しません。
インストルメンテーションターゲットにフィルターを含めると...junitテストに使用されるjunitクラスはインストルメントされません。結果はclassNotFoundExceptionです。
これが私のコードです。
インストルメンテーションが発生すると、インストルメントされたすべてのクラスがemma/instrumentationに移動します。これはクラスパスに含まれています。
繰り返しますが、JUNITテストをEmma Coverageレポートから除外することは可能ですか?何を変更する必要がありますか?前もって感謝します。
私はemma2.1(コードカバレッジ)、java、antを使用しています。
java - 自動生成されたコードを Eclemma コード カバレッジ ツール Java から除外できますか?
コードの一部 (自動生成されたコードなど) を eclemma コード カバレッジ ツールから隠すことはできますか? C# には、ここで説明されているオプションを実行するオプションがあります。Java でこのようなものはありますか?
編集済み: 私は ant を使用していません。Eclipse 用に Eclema プラグインを使用しています。コードの一部をカバレッジ ツールから除外するためにできる構成はありますか。
ありがとうございました!
java - エマ [MAIN_METHOD_NOT_FOUND]
アプリケーションのコードカバレッジをチェックするために Emma を使用しようとしており、このように実行しようとしています
しかし、私のクラス ValidatorClient.java には有効な main メソッドがあります
誰かがこれに光を当てることができますか?
前もって感謝します
unit-testing - emma コード カバレッジから Maven モジュールを除外する
複数のモジュールで構成される Maven super pom があります。スーパー pom で実行するmvn emma:emma
と、すべてのモジュール (テストが定義されている) の emma コード カバレッジが得られます。
ここで、モジュールの 1 つを emma コード カバレッジの実行から除外したいと考えています。スーパーポンで実行する mvn emma:emma
と、特定のモジュールのコードカバレッジが測定されないようになります。しかし、mvn test
すべてのモジュール テストを実行すると、通常どおり実行されます。
それ、どうやったら出来るの?
android - Androidライブラリのテストカバレッジを確認する正しい方法は何ですか?
私の主なプロジェクトはAndroidライブラリです。単体テストを含むテストプロジェクトを作成しました。テストは正常に実行されますが、テストカバレッジを取得するのに苦労しています。カバレッジレポートを生成すると、テストケースのカバレッジのみが取得され、ライブラリのカバレッジは取得されません。つまり、テストの100%が実行されているので、ほぼ100%になります。しかし、それはライブラリのどの部分がテストされたかを知るのに役立ちません。
これは私が現時点でそれを行う方法です:
手順2)を実行しないと、ライブラリプロジェクトをインストールできないため、手順3)が失敗します。
どんな助けでも本当にありがたいです!