TestNG - исключение, только если определено 6 или более тестов - PullRequest
2 голосов
/ 04 ноября 2011

Код ниже не работает, но только если определены 6 или более тестов. То есть неважно, какие у меня тесты. Я попытался сделать 5 дублирующих тестов, которые все прошли, и затем добавить еще один, чтобы увидеть, что утверждение ниже проваливается. Кто-нибудь имеет представление о том, что происходит?

Я запускаю Spring MVC, TestNG версии 5.8 с базой данных Neo4J, используя Spring Data Graph.

@ContextConfiguration(locations = {"classpath:application-context-test.xml"})
public class EntityTest extends AbstractTestNGSpringContextTests {

    @Autowired
    private GraphDatabaseContext graphDatabaseContext;

    @BeforeClass
    protected void setUp() throws Exception {
        Assert.assertNotNull(graphDatabaseContext);
    }

    @Test(groups = {"functest"})
    public void testEmployeeCreation() throws Exception {
       //please note that these methods are _literally_ empty.
    }

    @Test(groups = {"functest"})
    public void test2EmployeeCreation() throws Exception {
    }
    @Test(groups = {"functest"})
    public void test3EmployeeCreation() throws Exception {
    }
    @Test(groups = {"functest"})
    public void test4EmployeeCreation() throws Exception {
    }
    @Test(groups = {"functest"})
    public void test5EmployeeCreation() throws Exception {
    }

    @Test(groups = {"functest"})
    public void test6EmployeeCreation() throws Exception {
    }
}

testNG.xml:

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Maven Tests" verbose="1" annotations="JDK">

    <parameter name="echo.timeout" value="60000"/>

    <test name="Functional and Check-in Tests">

        <groups>
            <run>
                <include name="functest"/>
                <include name="checkintest"/>
            </run>
        </groups>

        <classes>
            <class name="com.noname.entity.EntityTest"/>
        </classes>

    </test>

</suite>

TestLog:

 java.lang.AssertionError: 
Expected :true
Actual   :false

    at org.testng.Assert.fail(Assert.java:84)
    at org.testng.Assert.failNotEquals(Assert.java:438)
    at org.testng.Assert.assertTrue(Assert.java:32)
    at org.testng.Assert.assertNotNull(Assert.java:352)
    at org.testng.Assert.assertNotNull(Assert.java:342)
    at com.noname.entity.EntityTest.setUp(EntityTest.java:25)

1 Ответ

0 голосов
/ 13 ноября 2011

Когда вы сталкиваетесь с подобной проблемой, первое, о чем вы думаете, это то, используется ли какой-то ресурс (например, соединения с базой данных или открытые файлы).Проверьте, если удаление graphDatabaseContext имеет значение.По общему признанию, смотря на API для GraphDatabaseContext и AbstractTestNGSpringContextTests, я не вижу очевидного случая, когда ссылка должна быть выпущена, но, возможно, кто-то, более знакомый с классами, может взять ее оттуда.

...