Files
ebean/howto-test.md

4.5 KiB

This is a short description how to run tests

Run tests from maven

Just type mvn test - it will run the whole test suite with the settings from src/test/resources/ebean.properties.

Run tests from eclipse

Running tests requires, that the classes are enhanced. By default, the BaseTestCase tries to load the enhancer-agent in a very early stage. This also works for most test cases, but it does not work if you try to run a complete test-suite, as classes that are loaded before the enhancer-agent kicks in will not get enhanced. To solve this problem, you need either the Eclipse-Enhancer-Plugin or add the agent to your JVM arguments (Preferences->Installed JREs) or to your run configuration: -javaagent:<USER_HOME>/.m2/repository/io/ebean/ebean-agent/<VERSION>/ebean-agent-<VERSION>.jar=debug=0

Platform Tests

By default, the h2 platform is used. To test a different platform, add -Ddatasource.default=xxx to your maven command or JVM arguments.

'h2' platform

Reqires no setup

run: mvn clean test

Current status: PASS Tests run: 1986, Failures: 0, Errors: 0, Skipped: 16

'pg' platform

Reqirements

  • a locally installed PostgreSQL server with PostGis.
  • Create a user "unit" with password "unit" and a database "unit"
  • Give the user all permissions to that db

run: mvn clean test -Ddatasource.default=pg

Current status: PASS Tests run: 2166, Failures: 0, Errors: 0, Skipped: 25

'mysql' platform

Reqirements

  • a locally installed MySQL server.
  • Create a user "unit" with password "unit" and a database "unit"
  • Give the user all permissions to that db

run: mvn clean test -Ddatasource.default=mysql

Current status: PASS Tests run: 2166, Failures: 0, Errors: 0, Skipped: 33

'sqlserver' platform

Reqires an installed sqlserver - e.g. https://hub.docker.com/r/microsoft/mssql-server-linux/

  • Create a user "ebean" with password "ebean" and a database "ebean_unittest"
  • Adjust the connection string and/or username in ebean.properties

run: mvn clean test -Ddatasource.default=mssql

Current status: PASS Tests run: 2166, Failures: 0, Errors: 0, Skipped: 39

'oracle' platform

Reqires a locally installed Oracle server.

  • Create a user "unit" with password "unit" with all permissions
  • The test wirtes directly to the "xe" SID - so do not use a productive server!
  • As the Oracle JDBC driver is only available on an oracle repository, you need a special maven setup as described here

run: mvn clean test -Ddatasource.default=ora -Poracle

Current status: FAIL Tests run: 1986, Failures: 17, Errors: 34, Skipped: 16

'db2' platform

Reqires a locally installed DB2 Express-C server.

  • Create a user "unit" with password "unit" with all permissions
  • Install the db2jcc4 driver (see pom.xml)

run: mvn clean test -Ddatasource.default=db2 -Pdb2

Current status: FAIL Tests run: 2166, Failures: 29, Errors: 58, Skipped: 30

'sqlite' platform

Reqires no setup

run: mvn clean test -Ddatasource.default=sqlite

Current status: FAIL Tests run: 1986, Failures: 24, Errors: 86, Skipped: 16

After some time, the db locks up, every test takes 3 seconds and fails with "the database file is locked"

'hsqldb' platform

Reqires no setup

run: mvn clean test -Ddatasource.default=hsqldb

Current status: FAIL Tests run: 1980, Failures: 3, Errors: 657, Skipped: 16

@Rob FYI The problem is https://sourceforge.net/p/hsqldb/bugs/1364/ In InsertHandler.getPstmt the meta.getIdentityDbColumns() contains 'id' in lowercase. Changing that to uppercase gives me this result: Tests run: 1986, Failures: 2, Errors: 18, Skipped: 16 (as quick hack I added temporary a toUpperCase to BindableIdScalar.getIdentityColumn)

'sqlanywhere' platform

TODO: not yet tested

'hana' platform

Requires an installed SAP HANA server - e.g. https://store.docker.com/images/sap-hana-express-edition

  • Create a user EBEAN_TEST with password Eb3an_test in the tenant database HXE
  • Adjust the connection string and/or username in ebean.properties

run: mvn clean test -Ddatasource.default=hana

Current status: PASS Tests run: 2486, Failures: 0, Errors: 0, Skipped: 84