您好,我尝试在测试前创建数据库schem,但它失败了:/这是我的脚本:
CREATE TABLE OFCONVERSATION
(
CONVERSATIONID integer NOT NULL,
ROOM character varying(1024),
ISEXTERNAL smallint NOT NULL,
STARTDATE bigint NOT NULL,
LASTACTIVITY bigint NOT NULL,
MESSAGECOUNT integer NOT NULL,
CONSTRAINT OFCONVERSATION_PK PRIMARY KEY (CONVERSATIONID)
);
并且当我尝试使用squirell和嵌入式Derby运行该脚本时,它起作用了。
property name=“ScriptStoExecuteBeforetest”脚本/Import.sql属性
但一切都失败了...
Tests run: 2, Failures: 0, Errors: 2, Skipped: 0, Time elapsed: 9.816 sec <<< FAILURE!
getPairChat(com.test.ejb.im.service.impl.PairChatTest) Time elapsed: 0.451 sec <<< ERROR!
org.jboss.arquillian.persistence.dbunit.exception.DBUnitDataSetHandlingException: Unable to execute statement: CREATE TABLE OFCONVERSATION
(
CONVERSATIONID integer NOT NULL,
ROOM character varying(1024),
ISEXTERNAL smallint NOT NULL,
STARTDATE bigint NOT NULL,
LASTACTIVITY bigint NOT NULL,
MESSAGECOUNT integer NOT NULL,
CONSTRAINT OFCONVERSATION_PK PRIMARY KEY (CONVERSATIONID)
);
at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
at org.apache.derby.impl.sql.compile.ParserImpl.parseStatement(Unknown Source)
at org.apache.derby.impl.sql.GenericStatement.prepMinion(Unknown Source)
at org.apache.derby.impl.sql.GenericStatement.prepare(Unknown Source)
at org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source
这是我的arquillian pom导入:
<dependency>
<groupId>org.glassfish.main.extras</groupId>
<artifactId>glassfish-embedded-all</artifactId>
<version>${glassfish-embedded-all.version}</version>
<type>jar</type>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jboss.arquillian.junit</groupId>
<artifactId>arquillian-junit-container</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jboss.arquillian.container</groupId>
<artifactId>arquillian-glassfish-embedded-3.1</artifactId>
<version>1.0.0.CR3</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jboss.arquillian.extension</groupId>
<artifactId>arquillian-persistence-impl</artifactId>
<version>1.0.0.Alpha6</version>
<scope>test</scope>
</dependency>
和我的test-persistence.xml:
<persistence-unit name="test-ejb" transaction-type="JTA">
<jta-data-source>test-ds</jta-data-source>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties>
<property name="eclipselink.target-database" value="DERBY"/>
<property name="eclipselink.platform.class.name" value="org.eclipse.persistence.platform.database.DerbyPlatform"/>
<!-- <property name="eclipselink.ddl-generation" value="drop-and-create-tables"/> -->
<property name="eclipselink.logging.level" value="ALL"/>
<property name="eclipselink.jpa.uppercase-column-names" value="true" />
</properties>
</persistence-unit>
和glassfish-resources.xml:
<resources>
<jdbc-connection-pool name="test-pool"
res-type="javax.sql.DataSource" datasource-classname="org.apache.derby.jdbc.EmbeddedDataSource"
ping="true">
<property name="ConnectionAttributes" value="create=true" />
<property name="DatabaseName" value="./target/derbydb" />
<property name="Password" value="" />
<property name="User" value="" />
</jdbc-connection-pool>
<jdbc-resource jndi-name="test-ds" pool-name="test-pool" />
</resources>
那么sql脚本或我的配置有什么问题呢?
如果您得到(或与使用Derby类似的内容):
Caused by: java.sql.SQLException: ORA-00911: invalid character
在您的堆栈跟踪中,您可能在alpha6中偶然发现了一个损坏的特性。
我在测试方面有问题。这是我第一次写测试,我遇到了一个问题。 我刚刚在我的应用程序中创建了一个测试文件夹,并且用于测试URL。 当我键入: 它说: 创建别名默认的测试数据库...创建测试数据库时出错:数据库"database_name"已经存在 如果要尝试删除测试数据库“database_name”,请键入“yes”,或键入“no”取消: 这是什么意思?如果我输入yes会发生什么?我是否丢失了数据库
问题内容: 我的Spring-Boot-Mvc-Web应用程序在文件中具有以下数据库配置: 这是我所做的唯一配置。我在任何地方都没有进行任何其他配置。尽管如此,Spring和子系统会在每次Web应用程序运行时自动重新创建数据库。即在系统运行时重新创建数据库,而在应用程序结束后它包含数据。 我不了解此默认值,并期望它适合测试。 但是,当我开始运行测试时,我发现数据库仅重建一次。由于没有按预定义的顺序
问题内容: 我的Spring-Boot-Mvc-Web应用程序在文件中具有以下数据库配置: 这是我所做的唯一配置。我在任何地方都没有进行任何其他配置。尽管如此,Spring和子系统会在每次Web应用程序运行时自动重新创建数据库。即在系统运行时重新创建数据库,而在应用程序结束后它包含数据。 我不了解此默认值,并期望它适合测试。 但是,当我开始运行测试时,我发现数据库仅重建一次。由于没有按预定义的顺序
如何让Spring Boot在测试类之间从头开始重新创建内存中的测试数据库? 我有几个用和注释的本地集成测试,可以改变数据库状态。我已经用标记了每一个。我期望创建内存数据库的代码将是应用上下文生命周期的一部分,因此在任何后续测试中都应该创建一个新的生命周期。 我可以在日志中看到Flyway正在尝试重新应用迁移,并认为它们已经完成,因为数据库尚未清除。 Spring Boot是否在每个应用上下文之外
考虑一个maven实用工具模块(模块1),它定义了一个抽象类:AbstractFoo.java。在测试资源下,编写了所述类的模型:foomockup.java。还编写了一个测试类:AbstractFootest.java。 现在考虑第二个模块(模块2),它包含一个使用AbstractFoo的类,并声明测试用例:bar.java和bartest.java。java在创建Bar实例的同时创建FooMo
我想用Cucumber测试使用PostgreSQL数据库的Ruby-on-Rails网站。 我还安装了FactoryGirl宝石,这样我就可以创建工厂了。 我知道为测试数据库创建数据的典型方法是编写Gherkin表并将它们放在cucumber文件的后台块中。但是我已经有了一个创建适合测试数据库的samle数据的Ruby脚本。 然而,我现在迷失在cucumber的环境中。您能否建议如何让Cucumb