我需要在远程Glassfish 4.1服务器上运行arquillian + junit测试。这些测试用例的数据库表需要为
(1)创建 in-memory ,
(2)使用嵌入式JavaDB 和
(3)测试执行后丢弃。
下面的glassfish-resources.xml会起作用吗?
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE resources PUBLIC
"-//GlassFish.org//DTD GlassFish Application Server 3.1 Resource Definitions//EN"
"http://glassfish.org/dtds/glassfish-resources_1_5.dtd">
<resources>
<jdbc-resource pool-name="ArquillianEmbeddedDerbyPool"
jndi-name="java:app/jdbc/chapter2" />
<jdbc-connection-pool name="ArquillianEmbeddedDerbyPool"
res-type="javax.sql.DataSource"
datasource-classname="org.apache.derby.jdbc.EmbeddedDataSource"
is-isolation-level-guaranteed="false">
<property name="databaseName" value="memory:action-bazaar-db"/>
<property name="createDatabase" value="create"/>
</jdbc-connection-pool>
</resources>
我确实尝试过,但不确定数据库是否在内存中创建。每次运行测试时我都会遇到以下错误。如何摆脱这个错误?
PER01000:获得SQLException执行语句“CREATE TABLE SEQUENCE (SEQ_NAME VARCHAR(50)NOT NULL,SEQ_COUNT DECIMAL(15),PRIMARY KEY (SEQ_NAME))“:java.sql.SQLException:表/视图'SEQUENCE'已经存在 存在于Schema'APP'中
答案 0 :(得分:0)
如果您使用Maven进行构建,则可以使用我编写的derby-maven-plugin GitHub,here和Maven Central。
您可以查看{{3}}我对类似问题的回答。