gma edited this page Sep 13, 2010 · 40 revisions

Integral is a lightweight application to help you test the interaction between different applications. It was developed at Wordtracker to ensure that the various (independently tested) components of the web site were interacting correctly before they were rolled out to the live servers. Some people refer to this kind of testing as integration testing.


After deploying your applications to your test server, run your tests:

$ thor tests:run

Before deploying to your live server, ask Integral whether or not it’s safe to do so:

$ thor versions:check myapp 123

If you want to see what’s going on you can find out which recent runs were successful:

$ thor tests:recent
Time                                     Outcome
Tue Nov 11 17:57:07 +0000 2008           pass
Tue Nov 11 17:58:52 +0000 2008           pass

If you’re wondering how all that works, read about Installing Integral, Configuring Integral and Running Your Tests.

The Background…

Imagine that you have two applications (let’s call them “apple” and “banana”) that access the same database. They store application data in two separate databases, but in order to avoid duplication you’ve decided to store common data – such as user authentication credentials – in apple’s database. Clearly banana needs to connect to apple’s database. Everything works well up until the point that you make a significant change to apple’s database schema and forget to update banana’s code; once you deploy the latest version of apple nobody can login to banana. Fruity.

Integral solves this problem by integrating into your deployment process and – so long as you deploy to a test server and write some simple tests to check the points of integration between your applications – prevents you from rolling out a version of apple that will break banana. It does this by keeping track of the versions of apple and banana that work well together, and which ones don’t.

You just need a test server, a live server, and some simple sanity tests. But you’ve got all those things already, right…?

Read on to see how it works…

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.