最近我将所有jar文件升级到最新版本(Spring 4.2.x,JPA和Hibernate)
现在我面临着测试用例的一些问题.这是测试的stackTrace ......
org.springframework.transaction.TransactionSystemException: Could not roll back JPA transaction; nested exception is javax.persistence.PersistenceException: unexpected error when rollbacking
at org.springframework.orm.jpa.JpaTransactionManager.doRollback(JpaTransactionManager.java:548)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.processRollback(AbstractPlatformTransactionManager.java:853)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.rollback(AbstractPlatformTransactionManager.java:830)
at org.springframework.test.context.transaction.TransactionContext.endTransaction(TransactionContext.java:125)
at org.springframework.test.context.transaction.TransactionalTestExecutionListener.afterTestMethod(TransactionalTestExecutionListener.java:218)
at org.springframework.test.context.TestContextManager.afterTestMethod(TestContextManager.java:313)
at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:93)
at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:86)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:241)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:87)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:180)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: javax.persistence.PersistenceException: unexpected error when rollbacking
at org.hibernate.jpa.internal.TransactionImpl.rollback(TransactionImpl.java:111) …Run Code Online (Sandbox Code Playgroud) jest
.spyOn(webService.prototype, 'isEnabled')
.mockImplementation(() => {
return Promise.resolve(true)
})
jest
.spyOn(webService.prototype, 'isEnabled')
.mockImplementation(() => {
return Promise.resolve(false)
})
Run Code Online (Sandbox Code Playgroud)
所以我想要的是如果参数中有“YES”字符串,则返回“true”。如果参数中有“NO”,则返回“false”。
函数的打字稿如下所示。
public isEnabled(featureId: string): Promise<boolean> {
return this.toggle.isEnabled(featureId)
}
Run Code Online (Sandbox Code Playgroud) 我在将 Oracle 语法转换为 H2 语法时遇到问题:
例如(甲骨文):
LOCK TABLE CAR_CHIP_ID_LOCK IN EXCLUSIVE MODE
Run Code Online (Sandbox Code Playgroud)
在 H2 中,它会导致(语法错误)
如何将oracle语法改为h2?我已经尝试过 Lock_mode 但它不起作用并且 MVCC 默认为 true v1.4+
当我在JDK 7及更低版本上使用eclipse neon编译/运行ant的构建时,我收到了错误消息Unsupported must run on 1.8 or higher.如果我把我的蚂蚁和jdk改为8,我就得到了unsupported minior/major version....
有没有办法用日食霓虹灯和jdk 7及以下构建?如果我进行了这次升级,我会牺牲以前的所有变化和开发吗?
我正在为我的一个项目编写 JUnit 测试,这些测试都是用 H2 数据库完成的。
设置由 XML 文件(包含 spring beans 和 db setup)、SQL 文件(包含数据/模式)和 java 文件(仅测试)组成
每当运行 JUnit 测试套件时,由于重复数据(因为 H2 在内存中),某些测试将失败,我想知道是否有办法在某些类之前擦除 H2 数据?
@DirtiesContext(classMode=ClassMode.AFTER_EACH_TEST_CLASS)
Run Code Online (Sandbox Code Playgroud)
已经尝试过,但由于运行我们的一些测试所需的时间限制,它在我们的案例中不可用。
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("test.xml")
public class ABCTest {
private static final Logger log = Logger.getLogger(ABC.class);
@Autowired
private ABCDao;
....
@After
public void tearDown(){
ABCDao = null;
...
}
@Test
public void test() {
...
}
}
Run Code Online (Sandbox Code Playgroud)
上面几乎是每个类的设置或类似的构造。
@RunWith(Suite.class)
@Suite.SuiteClasses({
ABCTest.class,
DEFTest.class,
GHITest.class,
....
TUVTest.class, //this fails <---
XYXTest.class
})
public class AllTests {
}
Run Code Online (Sandbox Code Playgroud)
如果单独运行测试,则没有问题,只是由于内存中的数据,套件会失败。我该如何解决?
班级档案:
@Transactional(propagation=Propagation.REQUIRES_NEW)
public class ServiceImpl implements Service {
...
}
Run Code Online (Sandbox Code Playgroud)
Xml文件:
...
<bean id="service" class="com.sky.core.engine.impl.ServiceImpl">
...
Run Code Online (Sandbox Code Playgroud)
测试文件:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("testConfig.xml")
public class ServiceImplTest {
private static final Logger log = Logger
.getLogger(ServiceImplTest.class);
@Autowired
private ServiceImpl service;
@Test
public void test(){
...
}
Run Code Online (Sandbox Code Playgroud)
例外:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.sky.core.engine.comp.impl.ServiceImplTest': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.sky.core.engine.impl.ServiceImpl com.sky.core.engine.impl.Service; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.sky.core.engine.comp.impl.ServiceImpl] found for dependency: expected at …Run Code Online (Sandbox Code Playgroud) 我有以下内容
ArrayList<ArrayList<Integer>> row = new ArrayList<ArrayList<Integer>>();
ArrayList<Integer> column = new ArrayList<Integer>();
for(int i = 0; i < 12; i++) {
column.add(0);
}
for(int j=0; j < 12 ; j++) {
row.add(column);
}
Run Code Online (Sandbox Code Playgroud)
它给了我
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …Run Code Online (Sandbox Code Playgroud)