web-dev-qa-db-ja.com

クラスが見つかりません:IntelliJの空のテストスイート

私は大学でコンピュータサイエンスプログラムを始めたばかりで、IntelliJに問題があります。ユニットテストを実行しようとすると、次のメッセージが表示されます。

Process finished with exit code 1
Class not found: "edu.macalester.comp124.hw0.AreaTest"Empty test suite.

また、画面左側に「テストが見つかりませんでした」というメッセージが表示されます。私のテストコードはここにあります:

package edu.macalester.comp124.hw0;


import org.junit.Test;
import static org.junit.Assert.*;

public class AreaTest {

    @Test
    public void testSquare() {
    assertEquals(Area.getSquareArea(3.0), 9.0, 0.001);
    }

    @Test
    public void testCircle() {
    assertEquals(Area.getCircleArea(3.0), 28.2743, 0.001);
    }
}

そして私のプロジェクトコードはここにあります:

package edu.macalester.comp124.hw0;

import Java.lang.Math;
public class Area {

/**
 * Calculates the area of a square.
 * @param sideLength The length of the side of a square
 * @return The area
 */
public static double getSquareArea(double sideLength) {
    // Has been replaced by correct formula
    return sideLength * sideLength;
}

/**
 * Calculates the area of a circle.
 * @param radius The radius of the circle
 * @return The area
 */
public static double getCircleArea(double radius) {
    // Replaced by correct value
    return radius * 2 * Math.PI;
}

}

テストを機能させるにはどうすればいいですか。前もって感謝します。 IntelliJ IDEA CEの最新バージョンを使用しています。

156
arnbobo

だから、ここで私の問題は、フォルダ名にありました。私は自分のコードフォルダをClasses 2016/2017と呼んでいましたが、IntelliJはそれを好みませんでした。スラッシュ(またはパス内の他の問題のある文字)を削除してプロジェクトを再インポートするだけで、うまくいきます。

9
arnbobo

同じメッセージがありました。実行/デバッグ構成を削除する必要がありました。

私の場合は、以前に単体テストをローカルテストとして実行しました。その後、私は自分のテストをandroidTestパッケージに移して、もう一度実行しようとしました。 Android Studioは前回の実行設定を記憶していたので、同じエラーを生成したローカルユニットテストとして再度実行しようとしました。

設定を削除してテストを再度実行した後、新しい設定が生成されて動作しました。

enter image description here

101
com2ghz

私は行きました

File -> Invalidate Caches/Restart...

それからそれは私のために働いた。

45
user674669

同じ問題がありました。私はプロジェクトを再構築し、それが私を助けました。

ビルド-> プロジェクトの再構築に移動します

その後、Mavenツールを使用している場合は、オプションすべてのMavenプロジェクトを再インポートを使用することをお勧めします


解決しない場合は、別の可能な解決策を試してください。

  • ファイル-> キャッシュの無効化/再起動-> 無効化と再起動に移動します

または:

  • Mavenプロジェクト構造でsrc/main/JavaJavaディレクトリを右クリックし、オプションを選択しますMark as as-> ソースルート

    同様にtestディレクトリと同じようにします。src/test/JavaJavaディレクトリを右クリックし、オプションディレクトリを->としてマークTest Sources Root

または:

  • 実行-> 構成の編集に移動し、セクションでJUnit =テスト構成を削除します。変更を適用します。その後、テストを実行してください。新しい構成が自動的に作成されます。

または:

  • ファイル->プロジェクト構造に移動し、モジュールを選択してから、適切なモジュールを選択してパスタブに移動します。
    オプションの確認:
    ラジオボタンUse module compile output pathを選択する必要があります。

    出力パスはプロジェクト内にある必要があります。また、テスト出力パスはプロジェクト内のディレクトリである必要があります。たとえば、次のようになります。
    出力パス:C:\ path\to\your\module\yourModule \ target\classes
    テスト出力パス:C:\ path\to\your\module\yourModule \ target\test-classes

    除外出力パスは選択解除する必要があります。
39
Schakal

テストフォルダが別のモジュールとしてインポートされている場合(プロジェクトビューのフォルダアイコンに小さな四角が表示されている場合)にも、これが発生する可能性があります。
プロジェクトビューでテストフォルダを選択してモジュールを削除し、を押します。 DEL
次にテストを始めます。
ポップアップダイアログが表示され、モジュールが選択されていないというエラーメッセージが表示された場合は、ドロップダウンからルートモジュールを指定してください。

14
Tobi

新しいIntelliJプロジェクトを開始した後も、私は同様の問題を抱えていました。私のモジュールの "module compile output path"が正しく指定されていないことがわかりました。モジュールの「コンパイル出力パス」のパスを適切な場所に割り当てたところ、問題は解決しました。コンパイル出力パスは、プロジェクト設定で割り当てられています。 [モジュール]の下で、関連するモジュールを選択し、[パス]タブを選択します。

[プロジェクト設定]の[パス]タブモジュールダイアログ

screenshot

...親のプロジェクトフォルダにある "output"という名前のフォルダにコンパイラの出力を送りました。

12
DStanton

私の場合は、他のものはすべて適切な場所にありましたが、 Javaライブラリ with kotlin で作業していました。私はただプラグインを適用するのを忘れました:

apply plugin: 'kotlin-Android'

そして今、それは今期待通りに働いています。

11
crgarridos

Android Studio 3.0以降では、UIテストがどういうわけか単体テストとして解釈され、ターゲット展開の選択が求められないことがあります。 [設定の編集]に移動して統合テストとしてマークすると機能し始めます。

7
Tushar Nallan

Mavenからjarをインポートしたときに同じ質問があり、その後empty-test-suiteエラーが発生しました。

私の場合、それはmavenがモジュールファイルをリセットしたからです。デフォルト設定をクリアすることで解決しました。

  1. 開くプロジェクト構造 with shift - ctrl - alt - s ショートカット

Screenshot of PModules Sources

  1. Modules> Sourcesを見てSourcesパッケージかテストパッケージを記入してください。
5
tyrantqiao

興味深いことに、私はさまざまな理由でこの問題に何度も直面しました。例えば キャッシュを無効にして を再起動することも同様に役に立ちました。

最後に File - > Project Structure - > Project - > Project Compiler Output の出力パスを修正して修正しました: absolute_path_of_package/out

例えば: /Users/random-guy/myWorkspace/src/DummyProject/out

5
some random guy

これはあなたのmoduleやproject-jdkが正しく設定されていないときにも起こります。

4
Maarten Dhondt

私は同じ問題を抱えており、キャッシュの再構築/無効化などはうまくいきませんでした。これはAndroid Studioの単なるバグのようです...

一時的な解決策は、コマンドラインから単体テストを実行することです。

./gradlew test

参照してください: https://developer.Android.com/studio/test/command-line.html

4
Marius

私は同じ問題(Android Studio 3.2 Canary 4)を持っていて、他の答えで説明されている提案のほとんどを試してみましたが、何も成功しませんでした。ファイルをtestからandroidTestフォルダに移動した後にこれが発生したことに注意してください。それはまだインストルメンテーションテストの代わりにテストとして実行構成に示されていました。

私はついに新しいファイルを作成することになります。

  1. 別の名前を付けて新しい計装テストクラスを作成します。
  2. クラスからすべてのコードをコピーしてください。
  3. それを実行します。
  4. 古いクラスを削除してください。
  5. 新しいクラスの名前を希望の名前に変更します。
4
Micer

プロジェクトまたはモジュールを再インポートすることで問題を解決できます。開発時にパッケージ名を変更してこの問題を解決しました。しかし、 outパス および テスト出力パス は古いパスです。そのためintellijは古いパスからクラスを見つけることができません。そのため、最も簡単な方法は、出力パスとテスト出力パスを修正することです。

Intellij module setting

4
Bejond

プロジェクトにコンパイルの問題がある場合、テストは実行されない可能性があります。それで最初にBuild - > Build Projectとしてプロジェクトを構築してください。コンパイルが成功したら、テストを再実行してください。

何も解決しない場合は、プロジェクトウィンドウを閉じてプロジェクトを削除し、既存のIntelliJ作成ファイルを上書きしてすべてを設定するGradle/Mavenプロジェクトとして再インポートします。これにより、無効なキャッシュが削除されます。

2
swapnil

.ideaを削除してSBTプロジェクトを再インポートすることで、この問題は解決しました。

2
jhegedus

私は同じ問題を抱えていました。私の場合、私はメインフォルダの外のpackage /フォルダにいくつかのテストクラスがありました。しかし、私が実行設定をチェックしたとき、それはいつもメインフォルダの中でクラスを探すことを試みていた(そしてメインの外の私のパッケージではない)。したがって、その場合は、パッケージを実行構成が指している場所に移動する必要があります。または、自分のパッケージを指すように実行設定を変更します。

1
mykey

私はすべての解決策を試しましたが、どれも役に立ちませんでした。最後に私はデバッグモードでテストを実行して....それは動作し始めました。たぶんいくつかのMavenのキャッシュが片付けられました。言うのは難しいです。できます。 mvn test -Xを試す

1
radekpakula

IntelliJの新しいバージョンをインストールした後にこれが起こる可能性があります(少なくとも私には;)、IntelliJプラグインはまだ更新されていません。

IntelliJの[ヘルプ]メニューから手動でCheck for updates…を実行する必要があります。

1
Peter Lamberg

プロジェクトウィンドウでファイルを右クリックして選択するだけです。

"Run YourTest "。

おそらくすべてが問題なく実行されるようになりました。おそらく、誤った実行設定が新たに再構築されているためです。

1
WebComer

おそらくフォルダがテストソースとして設定されていないためです。これは[モジュール設定]> [モジュール]で実行できます。

1
noego

テストにはAndroidデバイス(エミュレータまたはハードウェア)が必要ですか?
もしそうなら、それは "インストルメントテスト"と呼ばれ、 "module-name/src/androidTest/Java /"にあります。
そうでなければ、それは "ローカルユニットテスト"と呼ばれ、 "モジュール名/ src/test/Java"にあります。

https://developer.Android.com/training/testing/start/index.html

ローカルの単体テストを書いたので同じエラーが出ましたが、それはインストルメントテスト用のフォルダに置かれました。ローカルの単体テストを "src/test/Java"フォルダに移動して修正しました。

1
Patrick

私の場合、IntelliJは奇妙な理由でテストソースをコンパイルしませんでした。私は単純にビルド設定を修正し、clean test-compileセクションにmaven目標Before launchを追加しました

1
vatbub

同じエラーになっていました。私のデバイスはAndroid Studioに接続されていませんでした。私がスタジオに接続したとき。できます。これで私の問題は解決します。

1
Aman Srii

あなたのMavenプロジェクト構造内で、src/main/Javaの中でJavaディレクトリを右クリックし、オプションとしてMark directory as - > Sources Rootを選択してください。

同様にtestディレクトリでも同じことをします。src/test/Java Javaディレクトリを右クリックしてオプションMark directory as - > Test Sources Rootを選択します。

私のために働きました:-)

1
krishna Murari

私の場合、問題は私のbuild.gradleに入って変更することで修正されました。

dependencies {
    testImplementation 'junit:junit:4.12'
}

dependencies {
    testCompile 'junit:junit:4.12'
}
1
bremen_matt

私にとっては、プロジェクトはプロジェクトの外部でコンパイルされました。私はただ道を変えるだけです。パスを変更します(私はmacを使用しています)。

  • ファイル - >プロジェクト構造に移動します。
  • 左側のモジュールに進みます。
  • パスを選択し、ラジオボタンを選択します(モジュールコンパイルの出力パスを使用)
  • プロジェクト内にある出力パスとテスト出力パスを指定します。
  • [出力パスを除外する]の選択を解除します。
  • [ファイル] - > [キャッシュを無効にする]をクリックして再起動します。
0
Mukul Aggarwal

ユニットテストを実行する前にtestClassesタスクを手動で実行することで解決しました。

0
landerlyoung

この問題に対する私の修正はフォルダ名とパスでした。

私のテストは何らかの理由で/ Java /フォルダが欠けていました、そしてIntelliJはそれが好きではありませんでした。

../test/com/ ..から../test/Java/com/ ..

そしてそれは大丈夫です

0
Evgeni Atanasov

私にとっては、私のプロジェクトがプロジェクトの外部のディレクトリにコンパイルされていたからです。パスでは、出力パスは\ production\project_nameと\ test\project_nameで、C:\ production\project_nameに配置されていました。それらをプロジェクトのフルパスに変更することで、私のテストはクラスファイルにアクセスすることができました。

0
seharri

私の場合、テスト名に問題がありました:)。

NameがdummyNameTestの場合、見つかった箇所にテストは行われませんが、testDummyNameの場合、すべて問題ありませんでした。

0
Inweo

IntelliJ IDEAでパッケージ/ディレクトリをテストソースとしてマークします。

0
Luis Camargo

ここでも同じ問題をIDEA 15.0.6を使用して実行しましたが、テストクラスが存在するパッケージの名前を変更した場合を除いて何も助けになりませんでした。キャッシュをクリアしました。

私にとってうまくいったのはProject folder -> Maven -> Generate Sources and Update Foldersを右クリックすることでした

0
jsmiao

まず最初に、なぜこれが起こっているのか、そしてエラーメッセージがはっきりしているのかを理解する必要があります。

終了コード1で処理が終了しましたクラスが見つかりませんでした: "edu.macalester.comp124.hw0.AreaTest"空のテストスイート。

そのため、これは主に、単体テストクラスが作成された後、クラスレベルからそれらを実行する前に、メソッド(テスト)を個別に実行したときに発生します。それが全て

0
Carlos Daniel

私の環境でも同じ問題がありました(MacOS)。 IntelliJ 2016を使用していました。Javaライブラリプロジェクト(gradle)を持っていました。

私がしたことは

  1. IntelliJの旧バージョン(IntelliJ14など)からプロジェクトを開いた/エクスポートした。これはうまくいったので、プロジェクトを作成してテストケースを実行して検証しました。
  2. それから私はそのプロジェクトをIntelliJ 2016を介して再度インポートしました。
0
udayanga