Hibernate.org Community Documentation

- Prev
- Next

## Chapter 9. Building from source and testing

## 9.1. Building from source

Envers, as a module of Hibernate, uses the standard Hibernate build. So all the usual build targets (compile, test, install) will work.

The public Hibernate Git repository is hosted at GitHub and can be browsed using GitHub. The source can be checked out using either

                git clone https://github.com/hibernate/hibernate-core hibernate-core.git
                git clone git://github.com/hibernate/hibernate-core.git

## 9.2. Contributing

If you want to contribute a fix or new feature, either:

- use the GitHub fork capability: clone, work on a branch, fork the repo on GitHub (fork button), push the work there and trigger a pull request (pull request button).
- use the pure Git approach: clone, work on a branch, push to a public fork repo hosted somewhere, trigger a pull request (`git pull-request`)
- provide a good old patch file: clone the repo, create a patch with git format-patch or diff and attach the patch file to JIRA

## 9.3. Envers integration tests

The tests use, by default, use a H2 in-memory database. The configuration file can be found in `src/test/resources/hibernate.test.cfg.xml`.

The tests use TestNG, and can be found in the `org.hibernate.envers.test.integration` package (or rather, in subpackages of this package). The tests aren't unit tests, as they don't test individual classes, but the behaviour and interaction of many classes, hence the name of package.

A test normally consists of an entity (or two entities) that will be audited and extends the `AbstractEntityTest` class, which has one abstract method: `configure(Ejb3Configuration)`. The role of this method is to add the entities that will be used in the test to the configuration.

The test data is in most cases created in the "initData" method (which is called once before the tests from this class are executed), which normally creates a couple of revisions, by persisting and updating entities. The tests first check if the revisions, in which entities where modified are correct (the testRevisionCounts method), and if the historic data is correct (the testHistoryOfXxx methods).

Copyright © 2004 Red Hat Inc.

- PrevChapter 8. Audit table partitioning
- Top of page
- Front page
- NextChapter 10. Mapping exceptions