首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >JUnit测试SpringJUnit4ClassRunner

JUnit测试SpringJUnit4ClassRunner
EN

Stack Overflow用户
提问于 2018-07-27 16:21:31
回答 1查看 1.1K关注 0票数 1
代码语言:javascript
代码运行次数:0
运行
复制
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {
        "classpath:spring/integration-test.xml"
        })
@TransactionConfiguration(transactionManager = "transactionManager", defaultRollback = true)
public class TestClass {

    @Autowired
    private Dao dao;

    @Test
    @Transactional
    public void test1() {       

    }
}

你好!我试图从Spring工具套件调试配置中启动单个测试方法,但我有一个例外:

代码语言:javascript
代码运行次数:0
运行
复制
java.lang.Exception: No tests found matching [{ExactMatcher:fDisplayName=test1], {ExactMatcher:fDisplayName=test1(com.org.TestClass )], {LeadingIdentifierMatcher:fClassName=com.org.TestClass ,fLeadingIdentifier=test1]] from org.junit.internal.requests.ClassRequest@302e67
    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)

但是,由于我删除了@RunWith(SpringJUnit4ClassRunner.class),在本例中,测试方法成功启动。

我希望有任何有用的建议来消除这一麻烦。谢谢。

我有春季版本3.1.1

以下是进口商品:

代码语言:javascript
代码运行次数:0
运行
复制
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.transaction.TransactionConfiguration;
import org.springframework.transaction.annotation.Transactional;
import org.testng.annotations.Test;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-27 16:42:19

它是引起春季配置的具体工作。Spring为您的类创建了代理实例,因为在您的测试方法下使用了@Transactional注释,并且在该方法之后不包含@Test注释。

请参阅关于spring的信息:https://spring.io/blog/2012/05/23/transactions-caching-and-aop-understanding-proxy-usage-in-spring

您真的需要测试方法下的@Transactional注释吗?

您只能为测试创建类助手,在那里编写@Transactional注释的方法,注入它(注释@Autowired)并在您的测试类中使用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51561925

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档