是否有可能让grails test-app执行用java编写的JUnit测试?

时间:2015-08-19 15:31:57

标签: grails

使用grails 2.5,是否可以在java中编写测试(单元和集成)并让它们由grails test runner(grails test-app)执行?

我将提供一些有关我们情况的背景信息。如果我们有一个全新的应用程序,我们只需将我们的测试编写为groovy中的spock测试,一切都会好的。但是,我们有一个大型应用程序,几年前就开始使用java编写的Spring MVC应用程序。大约3年前我们将它移植到grails 2.1。当我们将它移植到grails中时,它的一部分被转换为groovy / grails,但其中大部分都保留在java中,包括很多测试代码。由于grails使用了Spring MVC,因此我们能够毫不费力地使用它。使用grails 2.1,grails测试运行器(grails test-app)确实为我们运行我们的java测试没有问题(它们都是JUnit 4测试)。但是,我们现在升级到grails 2.5,我们运行" grails test-app"使用grails 2.5,只执行groovy测试 - java测试现在都被忽略了。有谁知道如何让Grails在grails 2.5中执行java测试?

这是一个在grails 2.1下运行的示例集成测试,但只是使用grails 2.5忽略了

package com.finch.google.adwords.updaters;

import com.finch.domain.client.Client;
import com.finch.testing.DomainCreatorUtil;
import com.finch.testing.TestProfile;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.annotation.IfProfileValue;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;

import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;


@IfProfileValue(name=TestProfile.INTEGRATION_WS, value=TestProfile.RUN)
@ContextConfiguration(locations={"/config/applicationContext.xml","/config/dbLocalPoolContext.xml","/config/testContext.xml"})
public class AccountUpdaterTest extends AbstractJUnit4SpringContextTests {

    @Autowired
    private DomainCreatorUtil mDcu;

    @Autowired
    private AccountUpdater mAccountUpdater;

    public void testDataPartitions() {
        Client client = mDcu.addNewTestClient();
        assertFalse(mAccountUpdater.confirmPartitions(client));
        mAccountUpdater.createPartitions(client);
        assertTrue(mAccountUpdater.confirmPartitions(client));
        mAccountUpdater.dropPartitions(client);
        assertFalse(mAccountUpdater.confirmPartitions(client));
    }
}

此测试位于grails项目的测试/集成目录下(grails测试的标准位置)。我们知道我们不能利用grails为这种测试提供的许多优秀的测试功能,但这些只是测试java代码的遗留junit测试,所以这很好 - 我们只是想要它们当我们执行" grails test-app"就像他们在grails 2.1下做的那样。

0 个答案:

没有答案