私はJavaプロジェクトを継承しており、Java開発に慣れていない。 IntelliJを使用してコードを書いています。
私の既存のプロジェクトには、次のようなフォルダー構造があります。
/myProject
/src
/main
/Java
/com.lexcorp
/core
/email
/providers
emailProvider.Java
このプロジェクトのテストを保持する新しいプロジェクトを作成しました。このプロジェクトで単体テストと統合テストの両方を開催したいと思います。現在、私の新しいプロジェクトは次のような構造になっています。
/myProjectTests
/src
/main
/Java
/com.lexcorp.core.email.providers
emailProviderTest.Java
EmailProviderTest.Javaファイルは次のようになります。
package com.lexcorp.core.email.providers;
import junit.framework.TestCase;
import org.junit.Test;
public class EmailProviderTest extends TestCase {
private final String username = "[testAccount]";
private final String password = "[testPassword]";
@Test
public void thisAlwaysPasses() {
assertTrue(true);
}
}
このプロジェクトには、次のプロパティを持つ実行/デバッグ構成があります。
この構成を実行すると、次のようなエラーが表示されます。
junit.framework.AssertionFailedError: No tests found in com.lexcorp.core.email.providers.EmailProviderTest
at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.Java:84)
at org.junit.runners.Suite.runChild(Suite.Java:127)
at org.junit.runners.Suite.runChild(Suite.Java:26)
at org.junit.runners.ParentRunner$3.run(ParentRunner.Java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.Java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.Java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.Java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.Java:229)
at org.junit.runners.ParentRunner.run(ParentRunner.Java:309)
at org.junit.runner.JUnitCore.run(JUnitCore.Java:160)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.Java:74)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.Java:202)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.Java:65)
at Sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at Sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.Java:57)
at com.intellij.rt.execution.application.AppMain.main(AppMain.Java:120)
「テストが見つかりません」というエラーが発生する理由がわかりません。私のプロジェクト構造は異なりますが、OS上のフォルダー構造は一致しています(これは私を混乱させる別のことです)。なぜこのエラーが発生するのですか?どうすれば修正できますか?どうもありがとうございます!
私もエラーが発生していました
junit.framework.AssertionFailedError:テストが見つかりません...
しかし、私は指定するのを忘れました
defaultConfig {
...
testInstrumentationRunner "Android.support.test.runner.AndroidJUnitRunner"
}
プロジェクトを同期した後、テストが見つかりました。だから多分それは他の誰かを助ける
junit.framework.TestCase
の拡張は、テストケースを実装する古いJUnit 3のアプローチで、文字testで始まるメソッドがないため機能しません。 JUnit 4を使用しているため、クラスを次のように宣言するだけです。
public class EmailProviderTest {
そして、テストメソッドは@Test
アノテーションから見つけられます。
私もこれを得ていました:
junit.framework.AssertionFailedError:テストが見つかりません...
テストメソッドの名前をmethod1から変更することで解決
@Test
public void method1(){
// Do some stuff...
}
testMethod1
@Test
public void testMethod1(){
// Do some stuff...
}
jUnit 4を使用している場合は、extends TestCaseを使用せず、この修正されたエラーを削除します。
Intellij IDEAで、Javaフレームワークについては同じ問題がありました。
しかし、私は一つ間違ったことをしました:メソッドの名前「テスト」で始まっていなかった、実際には:
@Test
public void getSomethingTest(){
そして、私がそれを次のように変更したとき:
@Test
public void testGetSomethingTest(){
私は解決しました:エグゼキューターはついにこのメソッドをテストメソッドとして認識することができました。 他に何も変更していません。
データプロバイダーを使用していて、パラメーターの1つに次のような改行文字が含まれていたとき、それがありました。
@DataProvider
public static Object[][] invalidAdjustment() {
return new Object[][]{
{"some \n text", false},
};
}
\n
を削除すると問題が解決しました
私の場合、junit4-version.jar
タスクのクラスパスでjunitおよび
ant-version.jar
ant-junit-version.jar
ant-junit4-version.jar
antインストールのライブラリ(/usr/share/ant/lib
)。
エラーが発生しました "junit.framework.AssertionFailedError:No tests found in ..."がなかった間にant-junit4-*version*.jar
正しい場所に。
ant-optional debian/ubuntuパッケージをインストールすることでこれを修正しました:
apt-get install ant-optional