junit的問題No tests found matching


敲代碼經常出現這個錯誤,自己有時候也不知道為什么,把遇到問題怎么解決總結一下吧

運行junit方法,報錯:

TestMistake.getDocumentByName
initializationError(org.junit.runner.manipulation.Filter)
java.lang.Exception: No tests found matching [{ExactMatcher:fDisplayName=getDocumentByName], {ExactMatcher:fDisplayName=getDocumentByName(TestMistake)], {LeadingIdentifierMatcher:fClassName=TestMistake,fLeadingIdentifier=getDocumentByName]] from org.junit.internal.requests.ClassRequest@23ab930d
at org.junit.internal.requests.FilterRequest.getRunner(FilterRequest.java:40)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createFilteredTest(JUnit4TestLoader.java:77)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:68)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:43)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:444)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)

1.代碼一:使用了static關鍵字

  @Test
    public void getDocumentByName() {
        Bson filters = Filters.eq("name", "qinqin");
        FindIterable<Document> findIterable = dbCollection.find(filters);
        MongoCursor<Document> mongoCursor = findIterable.iterator();
        while (mongoCursor.hasNext()) {
            System.out.println(mongoCursor.next());
        }
        System.out.println("查詢成功");
    }


    /**
     * 提供一個靜態方法查詢文檔
     * 
     * @param name
     */
    @Test
    public static List<Document> getDocumentByName(String name) {
        Bson filters = Filters.eq("name", name);
        FindIterable<Document> findIterable = dbCollection.find(filters);
        List<Document> list = findIterable.into(new ArrayList<Document>());
        return list;
    }

  自己誤在static方法加上@Test,所以導致一直報這個錯誤。

去掉之后就運行正常了。

 

2.未導入org.hamcrest/hamcrest-core/1.3包,導入后正常

 

3.Junit4 測試方法必須用public void修飾

    @Test
    private void test() {
        System.out.println(111);
    }

把private方法換成public運行良好

 

4.此處代碼沒有錯,本類的其他測試代碼有誤

 @Test
    public void testFields() {
        Field[] fields = User.class.getFields();
        for (Field field : fields) {
            System.out.println(field);
        }
    }

    @Test
    protected void testDeclaredMethods() {
        Method[] dMethods = User.class.getDeclaredMethods();
        for (Method method : dMethods) {
            System.out.println(method);
        }
    }

測試testFileds報錯,改掉testDeclaredMethods前的protected為public就行了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM