Freedom251 › Integration Testing Tools
DbFit

What DbFit is
DbFit is a free, open-source framework for writing unit and integration tests for database code. It uses table-based tests, which its project describes as more readable than xUnit-style tests. Test types in the documentation include unit, data-diff, invariant, schema and timing tests. Tests can be written in Excel or another spreadsheet program and copied into FitNesse as tab-separated tables. They can run from the command line, a Java IDE or a CI build tool. DbFit is built on FitNesse, which supplies a test framework, HTTP server and wiki editing interface. Listed database support spans Oracle, SQL Server, MySQL, Postgres, Derby, HSQLDB, Sybase, DB2, Teradata, Netezza and Informix across Java and FitSharp implementations. DbFit requires the Java Runtime Environment; its guide starts FitNesse locally for browser-based authoring and execution. Row comparison is intended for datasets under 10K rows, with larger comparisons recommended in the database. SQL Server and Teradata JDBC drivers must be obtained and installed separately.
Who it suits
DbFit suits developers who want table-based unit and integration tests for database code and can work with a local FitNesse setup. It may also fit teams running tests from a Java IDE, command line or CI build tool.
What it does well
- Free and open source under the GPL license.
- Supports multiple database test types.
- Tests can be authored in spreadsheets.
- Tests can run from a CI build tool.
- Lists support across Java and FitSharp implementations.
What to know first
- Requires the Java Runtime Environment.
- SQL Server and Teradata drivers must be installed separately.
- Row comparison is suited to datasets under 10K rows.
- Quick procedures have inaccurate timing tests due to 1–2 seconds overhead.
Limits
The documentation says row comparisons suit small datasets under 10K rows and do not scale beyond that point. Procedure execution through DbFit adds 1–2 seconds of overhead, making timing tests inaccurate for procedures that finish quickly.
Getting started
- Open the DbFit website and follow the getting started guide.
- Install the Java Runtime Environment.
- Launch FitNesse using the Windows batch file or Linux shell script.
- Open http://localhost:8085/ in a browser.
- Create test pages in FitNesse, or copy tab-separated test tables from a spreadsheet.
- Obtain and install the SQL Server or Teradata JDBC driver separately if needed.
Verdict
DbFit offers table-based database tests through FitNesse, with several test types and execution options. Readers should account for its Java requirement, separately installed drivers and documented limits on row comparison and timing tests.
Questions
Is DbFit free?
Yes. DbFit is free and open source under the GPL license.
Which databases does DbFit support?
Its feature page lists Oracle, SQL Server, MySQL, Postgres, Derby, HSQLDB, Sybase, DB2, Teradata, Netezza, and Informix across the Java and FitSharp implementations.
What do I need to run DbFit?
The getting started guide says DbFit needs the Java Runtime Environment. SQL Server and Teradata JDBC drivers must be obtained and installed separately.
How are tests written and run?
Tests use tables and can be authored in a spreadsheet and copied into FitNesse. They can run from the command line, a Java IDE, or a CI build tool.
Is DbFit self-hosted?
Yes. The setup guide starts FitNesse locally and opens its interface at http://localhost:8085/.
Who maintains DbFit?
The project documentation describes separate maintainers for FitNesse, DbFit/Java, and DbFit/FitSharp.
Facts from DbFit's own pages
- Database support
- The features page lists Oracle, SQL Server, MySQL, Postgres, Derby, HSQLDB, Sybase, DB2, Teradata, Netezza, and Informix, with support varying between Java and FitSharp implementations. · dbfit.github.io, 3 Oct 2026
- Data-diff limit
- The documentation says DbFit's row comparison is suitable for small datasets under 10K rows and does not scale beyond that point; it recommends pushing larger comparisons into the database. · dbfit.github.io, 3 Oct 2026
- Driver limits
- The SQL Server and Teradata JDBC drivers are not open source and cannot be distributed with DbFit, so users must obtain and install them separately. · dbfit.github.io, 2 Oct 2026
- Execution
- Tests can run from the command line, a Java IDE, or a CI build tool. · dbfit.github.io, 3 Oct 2026
- License
- DbFit is free and open source under the GPL license; its GitHub repository specifies GNU General Public License version 2. · github.com, 3 Oct 2026
- Local interface
- The setup guide starts FitNesse locally and directs users to open http://localhost:8085/ in a browser. · dbfit.github.io, 2 Oct 2026
- Maintainers
- The project page identifies Jake Benilov as the copyright holder, while the team page describes multiple maintainers across the project's components and branches. · dbfit.github.io, 3 Oct 2026
- Password handling
- DbFit includes an encrypt utility for database passwords, but its documentation warns that the keystore is protected by a password hard-coded into the binary and should have restrictive file permissions. · dbfit.github.io, 3 Oct 2026
- Performance test limit
- The documentation says procedure execution through DbFit adds 1–2 seconds of overhead, making timing tests inaccurate for procedures that finish quickly. · dbfit.github.io, 3 Oct 2026
- Purpose
- DbFit is a framework for writing readable, maintainable unit and integration tests for database code. · dbfit.github.io, 3 Oct 2026
- Runtime
- The getting-started guide says DbFit needs the Java Runtime Environment and describes starting FitNesse using a Windows batch file or a Linux shell script. · dbfit.github.io, 3 Oct 2026
- Setup model
- The guide starts FitNesse locally and directs the user to open localhost in a browser to create and run test pages. · dbfit.github.io, 3 Oct 2026
- Spreadsheet authoring
- Test tables can be copied from Excel or other spreadsheet programs into FitNesse and converted from tab-separated data. · dbfit.github.io, 3 Oct 2026
- Support
- The contact page directs questions to the project forum and feature requests or bug reports to the issue tracker. · dbfit.github.io, 3 Oct 2026
- Test authoring
- Tests use tables, which the maker describes as more readable than xUnit-style tests. · dbfit.github.io, 3 Oct 2026
- Test environment caution
- The guide says unit tests that overwrite or truncate data require a development environment where doing so is acceptable. · dbfit.github.io, 3 Oct 2026
- Test format
- DbFit tests use tables, which the project describes as more readable than xUnit-style tests. · dbfit.github.io, 2 Oct 2026
- Test types
- The documentation describes unit, data-diff, invariant, schema, and timing tests. · dbfit.github.io, 3 Oct 2026
- Underlying framework
- DbFit is built on FitNesse, which provides the test framework, HTTP server, and wiki editing interface. · dbfit.github.io, 2 Oct 2026
Where DbFit stands on Freedom251
- Integration Testing Tools#8 of 26
- Database Testing Tools#10 of 28