diff --git a/bindep.txt b/bindep.txt
new file mode 100644
index 0000000..2f11192
--- /dev/null
+++ b/bindep.txt
@@ -0,0 +1,8 @@
+# This is a cross-platform list tracking distribution packages needed by tests;
+# see http://docs.openstack.org/infra/bindep/ for additional information.
+
+mysql-client [platform:dpkg]
+mysql-server [platform:dpkg]
+postgresql
+postgresql-client [platform:dpkg]
+postgresql-server-dev-all [platform:dpkg]
diff --git a/subunit2sql/tests/migrations/test_migrations.py b/subunit2sql/tests/migrations/test_migrations.py
index 483d0aa..5df7067 100644
--- a/subunit2sql/tests/migrations/test_migrations.py
+++ b/subunit2sql/tests/migrations/test_migrations.py
@@ -321,7 +321,7 @@ class TestWalkMigrations(base.TestCase):
         test_ids = [data['tests'][x]['id'] for x in data['tests']]
         # Query the DB for the tests from the sample dataset above
         where = ' OR '.join(["tests.id='%s'" % x for x in test_ids])
-        result = tests.select(where).execute()
+        result = tests.select(sqlalchemy.sql.text(where)).execute()
         run_time_pairs = list(map(lambda x: (x['id'], x['run_time']), result))
         # Ensure the test with one failure is None
         self.assertIn(('fake_null_test_id_fails', None), run_time_pairs)
diff --git a/test-requirements.txt b/test-requirements.txt
index 319d05c..fcf5c13 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -2,7 +2,8 @@ hacking>=0.12.0,!=0.13.0,<0.14
 coverage>=3.6
 fixtures>=0.3.14
 mock>=1.0
-sphinx>=1.6.2 # BSD
+sphinx!=1.6.6,!=1.6.7,<2.0.0;python_version=='2.7'  # BSD
+sphinx!=1.6.6,!=1.6.7,!=2.1.0;python_version>='3.4'  # BSD
 testscenarios>=0.4
 stestr>=1.0.0
 testtools>=0.9.34
diff --git a/tox.ini b/tox.ini
index ae8b00d..8befe6f 100644
--- a/tox.ini
+++ b/tox.ini
@@ -63,3 +63,14 @@ commands =
 [testenv:releasenotes]
 basepython = python3
 commands = sphinx-build -a -E -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
+
+[testenv:bindep]
+# Do not install any requirements. We want this to be fast and work even if
+# system dependencies are missing, since it's used to tell you what system
+# dependencies are missing! This also means that bindep must be installed
+# separately, outside of the requirements files, and develop mode disabled
+# explicitly to avoid unnecessarily installing the checked-out repo too (this
+# further relies on "tox.skipsdist = True" above).
+usedevelop = False
+deps = bindep
+commands = bindep test