JUnit:AssertionFailedError,测试未找到

3

这是我要提问的testMethod方法,

public class DetailsTest extends TestCase
{
    public void testGetQuotes() throws Exception
    {
        int bookSize = getBookSize();
        List<Details> detailList = getDetailLists();
        assertNotNull(bookSize);
        assertEquals(bookSize, detailList.size());
        assertNotNull(detailList.size());
    }
}

我的类继承了 JUnit : TestCase,不确定哪里出了问题导致了这个问题...我正在使用 junit 3.8.1

更新:我已经查看了SO上类似的问题,但并没有多大帮助。

更新2:堆栈跟踪

1) warning(junit.framework.TestSuite$1)junit.framework.AssertionFailedError: No tests found in com.comp.Details.DetailsTest
    at junit.extensions.TestDecorator.basicRun(TestDecorator.java:22)
    at junit.extensions.TestSetup$1.protect(TestSetup.java:19)
    at junit.extensions.TestSetup.run(TestSetup.java:23)

失败!!!

测试运行次数:1,失败次数:1,错误次数:0

更新3:我在我的测试套件中只有Details类而没有DetailsTest类,已经修复,现在一切正常了……这种事情偶尔会发生嘛……


你能发一下堆栈跟踪吗? - ftr
1
嗯...那是另一个类。 - Dave Newton
你是如何运行JUnit的?在Eclipse中吗? - Garrett Hall
1
DetailsTest是某个内部类吗?从完全限定名称看似乎是这样的。 - ftr
你是否正在使用TestRunner来运行测试? - Matthew Farwell
显示剩余4条评论
3个回答

2

如果您的测试在Android框架中,请在gradle文件中添加以下内容:

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

  packagingOptions {
     exclude 'LICENSE.txt'
  }

那么就没问题了。


现在是 "androidx.test.runner.AndroidJUnitRunner"。 - Phil Dukhov

2

您是在调用addTestSuite函数吗?

suite.addTestSuite(DetailsTest.class)

你应该在哪里调用addTest函数

suite.addTest(DetailsTest.class)

1
不,我正在运行Junit 3.8.1版本,由于@Test注解未被识别,因此我正确地收到了编译错误。 - Rachel
检查您的运行时类路径与编译时类路径是否匹配。如果您的代码无法正常工作,则表示您没有使用3.8.1版本运行。 - stevedbrown
已经检查过了,它正在运行3.8.1版本。 - Rachel
我猜这会解决问题...我一直在调用“addTestSuite”,我会进行更改并更新... - Rachel
1
在我的测试套件中,我添加的是Details.class而不是DetailsTest.class,这导致了问题,我已经更改了它,希望这样可以解决问题,这是一个非常愚蠢的错误和时间浪费... - Rachel

0

在迁移时,使用JUnit4TestAdapter来适应您的测试类到新环境中。

当您遇到junit.framework.AssertionFailedError: No tests found错误时,这非常有用。

例如:TestSuiteEx包含了我所有的测试用例类,就像这样:

@RunWith(Suite.class)
@SuiteClasses({ 
    SampleTest.class,
    myTestCases.class
})

然后我添加了AllTests,其中包含以下代码:

public static Test suite() {
    TestSuite suite = new TestSuite("all tests");
    suite.addTest(new JUnit4TestAdapter(TestSuiteEx.class));
    return suite;
}

它对我完美地起作用了。:)

编程愉快。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接