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用例。 希望能帮助到你。