だから私はJUnitが初めてなので、宿題に使用しなければなりません。私たちの教授は、1つのテストクラスBallTest.Java
を持つプロジェクトを提供しました。右クリック>実行> JUnitテストを実行すると、「JUnitテストが見つかりません」というポップアップエラーが表示されます。私は質問がここで回答されたことを知っています( テストランナー 'JUnit 4'でテストが見つかりません )、しかし、Eclipseを閉じ、再起動、クリーニング、およびビルドは機能しないようです。以下は、実行構成、ビルドパス、およびテストしようとしているクラスのスクリーンショットです。
BallTest.Java
import static org.junit.Assert.*;
import junit.framework.Assert;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;
public class BallTest {
Ball ball;
/**
* @throws Java.lang.Exception
*/
@Before
public void setUp() throws Exception {
System.out.println("Setting up ...");
Point2D p = new Point2D(0,0);
ball = new Ball(p);
}
/**
* @throws Java.lang.Exception
*/
@After
public void tearDown() throws Exception {
System.out.println("Tearing down ...");
ball = null;
}
/**
* Test method for {@link Ball#getCoordinates()}.
*/
@Test
public void testGetCoordinates() {
assertNotNull(ball); // don't need Assert. because of the import statement above.
Assert.assertEquals(ball.getCoordinates().getX(), 0);
Assert.assertEquals(ball.getCoordinates().getY(), 0);
}
/**
* Test method for {@link Ball#setCoordinates(Point2D)}.
*/
@Test
public void testSetCoordinates() {
Assert.assertNotNull(ball);
Point2D p = new Point2D(99,99);
ball.setCoordinates(p);
Assert.assertEquals(ball.getCoordinates().getX(), 99);
Assert.assertEquals(ball.getCoordinates().getY(), 99);
}
/**
* Test method for {@link Ball#Ball(Point2D)}.
*/
@Test
public void testBall() {
Point2D p = new Point2D(49,30);
ball = new Ball(p);
Assert.assertNotNull(ball);
Assert.assertEquals(ball.getCoordinates().getX(), 49);
Assert.assertEquals(ball.getCoordinates().getY(), 30);
//fail("Not yet implemented");
}
public static void main (String[] args) {
Result result = JUnitCore.runClasses(BallTest.class);
for (Failure failure : result.getFailures()) {
System.out.println(failure.toString());
}
System.out.println(result.wasSuccessful());
}
}
[プロジェクト]> [プロパティ]> [Javaビルドパス]を右クリックし、テストフォルダーをソースフォルダーとして追加します。
テストクラスを含むすべてのソースフォルダーは、Eclipse Java Build Pathにある必要があります。メインクラスやテストクラスなどのソースをビルドディレクトリにコンパイルできるように(Eclipseのデフォルトフォルダーはbin)。
他の回答のどれもあなたのために働かない場合、ここに私のために働いたものがあります。
Eclipseを再起動します
ソースフォルダーを正しく構成し、ユニットテストに正しく注釈を付けましたが、1つのプロジェクトで「JUnitテストが見つかりません」と表示されていました。再起動後、動作しました。 Eclipse Luna 4.4.1ベースのSTS 3.6.2を使用していました
右クリック->ビルドパス->ビルドパスから削除してから再度追加-> 'Test'という名前のフォルダーを右クリック>ビルドパス>ソースフォルダーとして使用.
同じ問題があり、次のように解決しました。@ Testアノテーションを削除して、再入力しました。うまくいきました。なぜかわかりません。
テストクラスのランナー定義が欠落しているようです。これが原因である可能性があります。
import org.junit.runners.JUnit4;
@RunWith(JUnit4.class)
public class BallTest {
...
}
テストメソッドの名前を変更するまで、どのソリューションも機能しませんでした。テストメソッドの名前が「test」で始まる場合はOKです。私はAndroidプログラミングの初心者であり、私にとって大きな驚きでした。
junit4
では、テストクラス名にTest
をサフィックスとして使用する必要があります。
Srcフォルダー外にテストクラスを作成したと思います。上記の問題は2つの方法で解決できます。
Java build path->source
にパッケージ名を追加します
package/class
をsrc
フォルダーに移動します
私は同じ問題を抱えており、この方法で両方のソリューションがうまく機能しています。
ビルドパスを構成することで問題を解決しました。プロジェクト(またはサブフォルダーのいずれか)->ビルドパス->ビルドパスの構成を右クリックします。プロパティウィンドウが開いたら、[ソース]タブをクリックして、srcフォルダーとtstフォルダーを追加します。しかし、これだけではうまくいきませんでした。奇妙なことに、注釈を再入力する必要がありました(ただし、[プロジェクト]-> [クリーン]または[再起動]も機能した可能性があります)。
Eclipseバージョン間でプロジェクトをアップグレードしているときにこの問題に遭遇しました。たとえばMars2.0で正常に動作しているJunitはNeonでは動作しませんでした。次は私のために働いた。
Eclipse Photonでは、JUnit 4または5をビルドパスに追加する必要がある場合があります。 @Testを右クリックし、「JUnit 4をビルドパスに追加」を選択します。
この問題を解決する最良の方法は、Junitテストケースクラス名にパブリックアクセス修飾子を配置し、Junitテストケースクラスを右クリックしてシナリオを実行し、Junitテストとして実行することです。
解決策は、src/testフォルダーのバックアップを作成し、ファイルシステムからそれを削除してから、再度作成することでした。
「ビルドパスから削除」ヒントを実行した後、STS 4でプロジェクトを開くとフォルダーがねじ込まれました。
テストクラスの実行構成は、この問題の別の原因(および解決策)を作成できます。
実行(またはデバッグ)構成に移動すると(cmd-3を使用するか、ツールバーの小さなドロップダウンボタンをクリックする)、作業したすべてのテストクラスに対して作成された構成を確認できます。起動しないクラスの1つに、[テストメソッド]フィールドが何らかの方法で誤って入力された実行構成が含まれていることがわかりました。私はそれを機能させるためにそれをクリアしなければなりませんでした。オフにすると、ライトテキストで(すべてのメソッド)と表示されます。
それを奇妙に追加します-他に何かが起こっているかもしれません-他のJUnit実行構成のようなクラス名のみが含まれるように「名前」フィールドを修正するまではうまくいかないようです。
@RunWith(Parameterized.class)
を使用していましたが、パブリック静的パラメーターメソッドに@Parameters
アノテーションを追加できませんでした。注釈を追加した後、機能しました。
これを試して
ユニットテストクラスを右クリックし、
さあ、テストを実行してください!