小编alt*_*abe的帖子

Arquillian测试的回滚事务 - 获取NullPointerException

描述

我在创建Arquillian测试时遇到问题,该测试在执行结束时回滚数据库操作.它NullPointerException在尝试回滚事务时会抛出一个,因为它无法org.jboss.arquillian.test.spi.TestResultorg.jboss.arquillian.test.impl.context.TestContextImpl实例中找到实例(testResultInstance.get()在下面返回null).

我正在使用arquillian-1.1.2-Final和arquillian-transaction-api-1.0.0-FINAL和testng-6.8.

我可以看到在测试方法开始时正确创建了事务,但我无法弄清楚为什么org.jboss.arquillian.test.spi.TestResult没有正确设置并抛出异常.

注意:如果我@Transactional从测试类中删除注释,一切正常.此外,在此测试中,您将看到数据库没有更新/插入,但这只是为了简单起见.如果我向其添加更新语句,则记录会正确更新,但更改会在测试结束后保留​​(如果我@Transactional从测试类中删除注释)并且我想通过回滚来阻止它...

信息

异常发生的代码(以下方法的第一行 - 来自org.jboss.arquillian.transaction.impl.lifecycle.TransactionHandler):

/**
 * Returns whether the test requires to be rolled back. </p>
 * By default it will return true if the last executed test has failed.
 *
 * @return true if test requires rollback, false otherwise
 */
private boolean testRequiresRollbackDueToFailure()
{
   final Status actualStatus = testResultInstance.get().getStatus();
   return TestResult.Status.FAILED.equals(actualStatus);
}
Run Code Online (Sandbox Code Playgroud)

异常堆栈跟踪:

java.lang.NullPointerException
    at org.jboss.arquillian.transaction.impl.lifecycle.TransactionHandler.testRequiresRollbackDueToFailure(TransactionHandler.java:159)
    at …
Run Code Online (Sandbox Code Playgroud)

java testng jboss-arquillian jboss7.x

2
推荐指数
1
解决办法
3289
查看次数

标签 统计

java ×1

jboss-arquillian ×1

jboss7.x ×1

testng ×1