junit:没有testing发现

我inheritance了一个Java项目,是Java开发新手。 对于我来说,让自己感觉舒适的代码就是围绕它编写一些testing。 我正在使用IntelliJ编写我的代码。

我现有的项目有这样的文件夹结构:

/myProject /src /main /java /com.lexcorp /core /email /providers emailProvider.java 

我创build了一个新的项目,将举行这个项目的testing。 我希望这个项目能同时进行unit testing和集成testing。 目前,我的新项目有这样的结构:

 /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); } } 

此项目具有运行/debuggingconfiguration,具有以下属性:

  • testing种类:全部包装
  • searchtesting:在整个项目中

当我运行这个configuration时,我得到一个错误,说:

 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) 

我不明白为什么我得到一个错误归结为:“没有testing发现”。 虽然我的项目结构不同,OS上的文件夹结构匹配(这是另一件让我困惑的事情)。 为什么我得到这个错误,我该如何解决? 非常感谢!

我也得到错误

junit.framework.AssertionFailedError:在…中找不到testing

但我忘了指定

 defaultConfig { ... testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } 

同步项目后,它发现testing。 所以也许它可以帮助别人

扩展junit.framework.TestCase是实现testing用例的旧JUnit 3方法,它不起作用,因为没有方法以字母testing开始。 由于您使用的是JUnit 4,只需将类声明为

 public class EmailProviderTest { 

testing方法将从@Test注释中find。

阅读: JUnit混淆:使用'扩展Testcase'或'@Test'?

我也是这样做的:

junit.framework.AssertionFailedError:在…中找不到testing

通过从method1重命名testing方法来解决

 @Test public void method1(){ // Do some stuff... } 

testMethod1

 @Test public void testMethod1(){ // Do some stuff... } 

如果你使用的是jUnit 4,那么不要使用extends TestCase ,除去这个固定的错误。

当我使用数据提供者时,它有一个新的行字符,如下所示:

 @DataProvider public static Object[][] invalidAdjustment() { return new Object[][]{ {"some \n text", false}, }; } 

删除\n解决了这个问题

testing方法名称public void test Name (){}

其中名称()在命名方式的命名中。

另一个原因,一般我看到人们有方法参数,删除你可能在testing方法中的任何参数,无论你添加@Test注释,你需要让你的方法名称开始“testing”,为了让Junitselect你的testing用例。 希望能帮助到你。