diff --git a/tests/test_administration.py b/tests/test_administration.py
index 25c96e9d318573a5532243d4975d7067ba0c7a84..4ba69d8c5f7dd17fb2bdf4ed65e6ce43b85db3d5 100644
--- a/tests/test_administration.py
+++ b/tests/test_administration.py
@@ -59,11 +59,11 @@ def teardown_module():
         print(e)
 
 
-def setup():
+def setup_function(function):
     switch_to_admin_user()
 
 
-def teardown():
+def teardown_function(function):
     switch_to_admin_user()
     try:
         admin._delete_user(name=test_user + "2")
diff --git a/tests/test_affiliation.py b/tests/test_affiliation.py
index 70a619c5662fa6afb0e4bf949afae720322ecbd2..bb66cdca17e7d5a50feed349c897a486b67ae25d 100644
--- a/tests/test_affiliation.py
+++ b/tests/test_affiliation.py
@@ -48,7 +48,7 @@ prop_name = "TestPropertyParent"
 file_path = "testfile.dat"
 
 
-def setup():
+def setup_function(function):
     d = db.execute_query("FIND ENTITY WITH ID > 99")
     if len(d) > 0:
         d.delete()
@@ -58,7 +58,7 @@ def setup():
     db.Property(name=prop_name, datatype=db.TEXT).insert()
 
 
-def teardown():
+def teardown_function(function):
     db.execute_query("FIND Test*").delete()
 
 
diff --git a/tests/test_authentication.py b/tests/test_authentication.py
index ef0657cbe215743e79ce1e2110a1b172cb980c36..c885523a8ac52b2f2d84a55e92c3351a39edae47 100644
--- a/tests/test_authentication.py
+++ b/tests/test_authentication.py
@@ -41,7 +41,7 @@ from .test_server_side_scripting import request
 _USED_OTA_TOKEN = set()
 
 
-def setup():
+def setup_function(function):
     db.configure_connection()
 
     # deactivate anonymous user
@@ -51,8 +51,8 @@ def setup():
         d.delete()
 
 
-def teardown():
-    setup()
+def teardown_function(function):
+    setup_function(function)
 
 
 @mark.skipif(
diff --git a/tests/test_creation.py b/tests/test_creation.py
index a2a431e82c948286afba71841832025241208d24..15305790f6b29620791550da7442a58dae5c3ce9 100755
--- a/tests/test_creation.py
+++ b/tests/test_creation.py
@@ -30,7 +30,7 @@ from caosdb import Container, RecordType, Property, execute_query
 from nose.tools import with_setup  # @UnresolvedImport
 
 
-def setup():
+def setup_function(function):
     try:
         execute_query("FIND PA_*").delete()
     except BaseException:
diff --git a/tests/test_datatype.py b/tests/test_datatype.py
index 3abba3f85369df799ed3611b84ce7d54f8dc17f0..46c52108e9bb1aed097c109ea30f675f6efc20a2 100644
--- a/tests/test_datatype.py
+++ b/tests/test_datatype.py
@@ -29,14 +29,14 @@ import caosdb as db
 from pytest import raises
 
 
-def setup():
+def setup_function(function):
     try:
         db.execute_query("FIND Test*").delete()
     except BaseException:
         pass
 
 
-def teardown():
+def teardown_function(function):
     try:
         db.execute_query("FIND Test*").delete()
     except BaseException:
diff --git a/tests/test_datatype_inheritance.py b/tests/test_datatype_inheritance.py
index 638207181dee055a1fcfffa57386e598a32ab828..6af35b2c758c2aea081b9489509fd1b5c859b5bc 100644
--- a/tests/test_datatype_inheritance.py
+++ b/tests/test_datatype_inheritance.py
@@ -32,11 +32,11 @@ from caosdb.exceptions import TransactionError
 from pytest import raises
 
 
-def setup():
-    teardown()
+def setup_function(function):
+    teardown_function(function)
 
 
-def teardown():
+def teardown_function(function):
     try:
         db.execute_query("FIND test_*").delete()
     except BaseException:
diff --git a/tests/test_deletion.py b/tests/test_deletion.py
index fd2236ec2b96d0a0340ebb773fc829066f824941..ef374b47dbf4572620de221c60268255a395017c 100755
--- a/tests/test_deletion.py
+++ b/tests/test_deletion.py
@@ -61,7 +61,7 @@ def test_delete_referencing_properties():
     h.execute_query("FIND ENTITY WITH ID > 100").delete()
 
 
-def setup():
+def setup_function(function):
     try:
         h.execute_query("FIND Test*").delete()
     except Exception as e:
diff --git a/tests/test_empty_text_value.py b/tests/test_empty_text_value.py
index fe705d6deadc7ce57e0a12c3d5492c3ab9b7d87e..64be317878150e735e6d197835381d5a52b22dcc 100644
--- a/tests/test_empty_text_value.py
+++ b/tests/test_empty_text_value.py
@@ -24,15 +24,15 @@ import pytest
 import caosdb as db
 
 
-def setup():
-    teardown()
+def setup_function(function):
+    teardown_function(function)
     rt = db.RecordType("TestRT")
     rt.insert()
     p = db.Property("TestProp", datatype=db.TEXT)
     p.insert()
 
 
-def teardown():
+def teardown_function(function):
     try:
         db.execute_query("FIND Test*").delete()
     except Exception as e:
diff --git a/tests/test_error_stuff.py b/tests/test_error_stuff.py
index d6eb85b74bf288e91de02c4d6d95e1f1298b2c0f..ca33fb2f101ad87e701bad92745490699b1e789a 100644
--- a/tests/test_error_stuff.py
+++ b/tests/test_error_stuff.py
@@ -40,16 +40,16 @@ from caosdb.exceptions import (AmbiguousEntityError,
 import pytest
 
 
-def setup():
+def setup_function(function):
     try:
         h.execute_query("FIND Test*").delete()
     except BaseException:
         pass
 
 
-def teardown():
+def teardown_function(function):
     """Delete everything."""
-    setup()
+    setup_function(function)
 
 
 def test_retrieval_no_exception_raised():
diff --git a/tests/test_file.py b/tests/test_file.py
index 7b24c9777a39b9d6b6ed66540441b09056c36f37..b6db06e7bf0889560304062a83806cf2780a0ce9 100644
--- a/tests/test_file.py
+++ b/tests/test_file.py
@@ -43,11 +43,11 @@ from caosdb.utils.checkFileSystemConsistency import runCheck
 
 
 def setup_module():
-    teardown()
+    teardown_function(function)
 
 
-def setup():
-    teardown()
+def setup_function(function):
+    teardown_function(function)
     with open("test.dat", "w") as upload_file:
         upload_file.write("hello world\n")
     os.makedirs("testfolder/subfolder")
@@ -57,7 +57,7 @@ def setup():
         upload_file.write("hello world\n")
 
 
-def teardown():
+def teardown_function(function):
     d = execute_query("FIND ENTITY WHICH HAS AN ID >= 100")
     if len(d) > 0:
         d.delete()
diff --git a/tests/test_importance.py b/tests/test_importance.py
index afa63effa4d70b32728777d3304a09c212c318e1..6bcf4a097647c6d8393192361337e0b45a1417b0 100644
--- a/tests/test_importance.py
+++ b/tests/test_importance.py
@@ -22,7 +22,7 @@ from pytest import raises
 import caosdb as db
 
 
-def setup():
+def setup_function(function):
     teardown_module()
 
 
diff --git a/tests/test_inheritance.py b/tests/test_inheritance.py
index 6b4fd2c293b88d6a3ae241b8302c186b84ac4ebd..bffb128484364906ec2e30342cbc5090c7ca9554 100644
--- a/tests/test_inheritance.py
+++ b/tests/test_inheritance.py
@@ -30,11 +30,11 @@
 import caosdb as db
 
 
-def setup():
-    teardown()
+def setup_function(function):
+    teardown_function(function)
 
 
-def teardown():
+def teardown_function(function):
     d = db.execute_query("FIND ENTITY WITH ID > 99")
     if len(d) > 0:
         d.delete()
diff --git a/tests/test_issues_mysqlbackend.py b/tests/test_issues_mysqlbackend.py
index 64de2f2f6e4d92effc9847598e474bd80a06825d..5904deda1ac5a63f40eeb578ba82cd249ebfcec6 100644
--- a/tests/test_issues_mysqlbackend.py
+++ b/tests/test_issues_mysqlbackend.py
@@ -33,12 +33,12 @@ def setup_module():
         print(delete_exc)
 
 
-def setup():
+def setup_function(function):
     """No setup required."""
     setup_module()
 
 
-def teardown():
+def teardown_function(function):
     """Deleting entities again."""
     setup_module()
 
diff --git a/tests/test_issues_server.py b/tests/test_issues_server.py
index 54f77094f6236e342dec905a2d4d0c35a82e19da..844de461a3665240cf9d053d0cb8f7439767efe6 100644
--- a/tests/test_issues_server.py
+++ b/tests/test_issues_server.py
@@ -41,12 +41,12 @@ def setup_module():
         print(delete_exc)
 
 
-def setup():
+def setup_function(function):
     """No setup required."""
     setup_module()
 
 
-def teardown():
+def teardown_function(function):
     """Deleting entities again."""
     setup_module()
 
diff --git a/tests/test_list.py b/tests/test_list.py
index 2888552b3f26770986596f28dde6c87eb4b4271d..63ece67b7b454800533a68b2c86d5db51776be68 100644
--- a/tests/test_list.py
+++ b/tests/test_list.py
@@ -33,16 +33,16 @@ from nose.tools import assert_true, assert_equal
 from pytest import raises
 
 
-def setup():
+def setup_function(function):
     d = db.execute_query("FIND ENTITY WITH ID > 99")
     if len(d) > 0:
         d.delete()
 
 
-def teardown():
+def teardown_function(function):
     if os.path.isfile("test.dat"):
         os.remove("test.dat")
-    setup()
+    setup_function(function)
 
 
 def test_list_of_files():
diff --git a/tests/test_misc.py b/tests/test_misc.py
index da5e81523446b68a4cf2755b473e9fe24667a2bf..15ba810887802917725a8eb8e88b6fa66f98c3bf 100644
--- a/tests/test_misc.py
+++ b/tests/test_misc.py
@@ -31,7 +31,7 @@ from pytest import raises
 from pytest import mark
 
 
-def setup():
+def setup_function(function):
     try:
         db.execute_query("FIND Test*").delete()
     except Exception as e:
diff --git a/tests/test_name_properties.py b/tests/test_name_properties.py
index 028592b7c0a728587f9939e427eb40ba74b9be43..d02d61df117dc7f34c4670aa82c24d81df4c1c37 100644
--- a/tests/test_name_properties.py
+++ b/tests/test_name_properties.py
@@ -27,8 +27,8 @@
 """
 
 import caosdb as db
-from pytest import raises, mark
-from nose.tools import nottest, assert_true, assert_raises, assert_equal, with_setup, assert_is_not_none  # @UnresolvedImport
+from pytest import raises
+from nose.tools import assert_true, assert_equal
 
 
 def setup_module():
@@ -36,36 +36,34 @@ def setup_module():
 
 
 def teardown_module():
-    teardown()
+    teardown_function(function)
 
 
-def setup():
+def setup_function(function):
     try:
         db.execute_query("FIND Test*").delete()
     except BaseException:
         pass
 
 
-def teardown():
+def teardown_function(function):
     try:
         db.execute_query("FIND Test*").delete()
     except BaseException:
         pass
 
 
-@with_setup(setup, teardown)
 def test_property_insertion():
     p = db.Property(
         name="TestShortName",
         datatype=db.TEXT,
         value="TestSN").add_parent(
         name="name").insert()
-    assert_true(p.is_valid())
+    assert p.is_valid()
 
     return p
 
 
-@with_setup(setup, teardown)
 def test_property_query():
     pid = test_property_insertion().id
     assert_equal(db.execute_query("FIND TestShortName", unique=True).id, pid)
@@ -74,29 +72,26 @@ def test_property_query():
     assert_equal(len(db.execute_query("FIND TestSN")), 0)
 
 
-@with_setup(setup, teardown)
 def test_recordtype_insertion_separately_prop_by_id_direct_name_child():
     pid = test_property_insertion().id
     rt = db.RecordType(
         name="TestRecordType").add_property(
         id=pid, value="TestRT").insert()
-    assert_true(rt.is_valid())
+    assert rt.is_valid()
 
     return rt
 
 
-@with_setup(setup, teardown)
 def test_recordtype_is_stored_correctly():
     test_recordtype_insertion_separately_prop_by_id_direct_name_child()
 
     rt = db.RecordType(name="TestRecordType").retrieve()
-    assert_true(rt.is_valid())
+    assert rt.is_valid()
     assert_equal(len(rt.get_properties()), 1)
-    assert_is_not_none(rt.get_property("TestShortName"))
+    assert rt.get_property("TestShortName") is not None
     assert_equal(rt.get_property("TestShortName").value, "TestRT")
 
 
-@with_setup(setup, teardown)
 def test_recordtype_insertion_container_prop_by_tempid_direct_name_child():
     p = db.Property(
         name="TestShortName",
@@ -109,13 +104,12 @@ def test_recordtype_insertion_container_prop_by_tempid_direct_name_child():
         id=-1, value="TestRT")
     c = db.Container().extend([p, rt])
     c.insert()
-    assert_true(c.is_valid())
-    assert_true(p.is_valid())
-    assert_true(rt.is_valid())
+    assert c.is_valid()
+    assert p.is_valid()
+    assert rt.is_valid()
     return rt
 
 
-@with_setup(setup, teardown)
 def test_recordtype_insertion_container_prop_by_name_direct_name_child():
     p = db.Property(
         name="TestShortName",
@@ -128,40 +122,37 @@ def test_recordtype_insertion_container_prop_by_name_direct_name_child():
         value="TestRT")
     c = db.Container().extend([p, rt])
     c.insert()
-    assert_true(c.is_valid())
-    assert_true(p.is_valid())
-    assert_true(rt.is_valid())
+    assert c.is_valid()
+    assert p.is_valid()
+    assert rt.is_valid()
     return rt
 
 
-@with_setup(setup, teardown)
 def test_recordtype_insertion_separately_prop_by_name_direct_name_child():
     test_property_insertion()
     rt = db.RecordType(
         name="TestRecordType").add_property(
         name="TestShortName",
         value="TestRT").insert()
-    assert_true(rt.is_valid())
+    assert rt.is_valid()
     return rt
 
 
-@with_setup(setup, teardown)
 def test_recordtpye_insertion_with_indirect_child_with_existing_parent():
     test_property_insertion()
     p = db.Property(
         name="TestExtraShortName").add_parent(
         name="TestShortName").insert()
-    assert_true(p.is_valid())
+    assert p.is_valid()
 
     rt = db.RecordType(
         name="TestRecordType").add_property(
         name="TestExtraShortName",
         value="TestRT").insert()
-    assert_true(rt.is_valid())
+    assert rt.is_valid()
     return rt
 
 
-@with_setup(setup, teardown)
 def test_recordtpye_insertion_with_indirect_child_with_new_parent():
     parp = db.Property(name="TestShortName").add_parent(name="name")
     p = db.Property(name="TestExtraShortName").add_parent(name="TestShortName")
@@ -171,40 +162,39 @@ def test_recordtpye_insertion_with_indirect_child_with_new_parent():
         value="TestRT")
     c = db.Container().extend([parp, p, rt]).insert()
 
-    assert_true(c.is_valid())
-    assert_true(p.is_valid())
-    assert_true(parp.is_valid())
-    assert_true(rt.is_valid())
+    assert c.is_valid()
+    assert p.is_valid()
+    assert parp.is_valid()
+    assert rt.is_valid()
 
     return rt
 
 
-@nottest
-def do_unique_query_test(call, queries):
-    setup()
+def assert_same_unique_results(call, queries):
+    setup(None)
     rtid = call().id
     for q in queries:
         assert_equal(db.execute_query(q, unique=True).id, rtid)
-    teardown()
+    teardown_function(function)
 
 
 def test_recordtype_query():
-    do_unique_query_test(
+    assert_same_unique_results(
         test_recordtype_insertion_separately_prop_by_id_direct_name_child, [
             "FIND TestRecordType", "FIND TestRT"])
-    do_unique_query_test(
+    assert_same_unique_results(
         test_recordtype_insertion_separately_prop_by_name_direct_name_child, [
             "FIND TestRecordType", "FIND TestRT"])
-    do_unique_query_test(
+    assert_same_unique_results(
         test_recordtype_insertion_container_prop_by_name_direct_name_child, [
             "FIND TestRecordType", "FIND TestRT"])
-    do_unique_query_test(
+    assert_same_unique_results(
         test_recordtype_insertion_container_prop_by_tempid_direct_name_child, [
             "FIND TestRecordType", "FIND TestRT"])
-    do_unique_query_test(
+    assert_same_unique_results(
         test_recordtpye_insertion_with_indirect_child_with_new_parent, [
             "FIND TestRecordType", "FIND TestRT"])
-    do_unique_query_test(
+    assert_same_unique_results(
         test_recordtpye_insertion_with_indirect_child_with_existing_parent, [
             "FIND TestRecordType", "FIND TestRT"])
 
@@ -224,7 +214,7 @@ def test_query_name_property():
     with raises(db.BadQueryError):
         db.execute_query("FIND John", unique=True)
 
-    teardown()
+    teardown_function(function)
 
     # test behavior WITH the name parent
     db.RecordType("TestPerson").insert()
@@ -239,7 +229,6 @@ def test_query_name_property():
                             unique=True).id == rec.id
 
 
-@with_setup(setup, teardown)
 def test_query_property_with_pov():
     """ Insert a Record with a property which can be searched using two
     different names.
@@ -285,7 +274,6 @@ def test_query_property_with_pov():
         rec.id)
 
 
-@with_setup(setup, teardown)
 def test_query_with_reference():
     """ Insert a Record with two names. Both work in a reference query.
 
@@ -321,7 +309,6 @@ def test_query_with_reference():
         rec.id)
 
 
-@with_setup(setup, teardown)
 def test_query_with_back_reference():
     """ Insert a Record with two names. Both work in a back-ref query.
 
diff --git a/tests/test_parents.py b/tests/test_parents.py
index 19b5894546a48847d8f5146388d413f833df9217..d038350a27cb0a9bb2db79020957dc401e1b1e10 100644
--- a/tests/test_parents.py
+++ b/tests/test_parents.py
@@ -22,11 +22,11 @@ from pytest import raises, mark
 import caosdb as db
 
 
-def setup():
-    teardown()
+def setup_function(function):
+    teardown_function(function)
 
 
-def teardown():
+def teardown_function(function):
     d = db.execute_query("FIND Test*")
     if len(d) > 0:
         d.delete()
diff --git a/tests/test_permissions.py b/tests/test_permissions.py
index 16bb9cff278154560fe72b59f1c22f677ece2ae2..f35d49661a551f6ee336d85e4477233905da1515 100644
--- a/tests/test_permissions.py
+++ b/tests/test_permissions.py
@@ -151,11 +151,11 @@ def revoke_permissions_test_role():
         role=test_role, permission_rules=[])
 
 
-def teardown():
-    setup()
+def teardown_function(function):
+    setup_function(function)
 
 
-def setup():
+def setup_function(function):
     switch_to_admin_user()
     try:
         db.execute_query("FIND Test*").delete()
diff --git a/tests/test_properties.py b/tests/test_properties.py
index ffedcdbd2bd38a7ee993307f52514da9116daf24..ca6aac4a5de393647f20d6143a775116f6b72bf8 100644
--- a/tests/test_properties.py
+++ b/tests/test_properties.py
@@ -32,11 +32,11 @@ def setup_module():
         d.delete()
 
 
-def setup():
+def setup_function(function):
     setup_module()
 
 
-def teardown():
+def teardown_function(function):
     setup_module()
 
 
diff --git a/tests/test_query.py b/tests/test_query.py
index ad3fc94c1cb58b17d2b9fa1ab0648ac7b5130df8..403aa0ad3acf7712f10701844bfa6b8841c275d2 100644
--- a/tests/test_query.py
+++ b/tests/test_query.py
@@ -43,16 +43,16 @@ def setup_module():
     assert perms == set()
 
 
-def setup():
+def setup_function(function):
     try:
         db.execute_query("FIND *").delete()
     except Exception as e:
         print(e)
 
 
-def teardown():
+def teardown_function(function):
     db.configure_connection()
-    setup()
+    setup_function(function)
     try:
         os.remove("test.dat")
     except Exception as e:
diff --git a/tests/test_query_template.py b/tests/test_query_template.py
index e4c662d6d166e0b64bab6e16733b455ff3de1254..58eccf87b502587c9c7ce0c0424012006167fc03 100644
--- a/tests/test_query_template.py
+++ b/tests/test_query_template.py
@@ -78,11 +78,11 @@ def teardown_module():
         print(e)
 
 
-def setup():
+def setup_function(function):
     pass
 
 
-def teardown():
+def teardown_function(function):
     db.configure_connection()
     try:
         db.execute_query("FIND QUERYTEMPLATE Test*").delete()
diff --git a/tests/test_records.py b/tests/test_records.py
index 011ebef67568f7b4bd6ff0097e601cef414c5fdb..182375ba2495539025b47cb604f1acaed07adade 100644
--- a/tests/test_records.py
+++ b/tests/test_records.py
@@ -30,7 +30,7 @@ from caosdb.exceptions import CaosDBException
 import caosdb
 
 
-def teardown():
+def teardown_function(function):
     try:
         caosdb.execute_query("FIND Test*").delete()
     except Exception as e:
diff --git a/tests/test_recursive_parents.py b/tests/test_recursive_parents.py
index 1efd9390d9a01a417f91bca1cce7f0f76c154e4b..76178cee37db9ebeb2d249837bdfde80baa58141 100644
--- a/tests/test_recursive_parents.py
+++ b/tests/test_recursive_parents.py
@@ -38,12 +38,12 @@ def setup_module():
         raise_exception_on_error=False)
 
 
-def setup():
+def setup_function(function):
     """No further setup required"""
     setup_module()
 
 
-def teardown():
+def teardown_function(function):
     """Delete again"""
     setup_module()
 
diff --git a/tests/test_server_side_scripting.py b/tests/test_server_side_scripting.py
index 6e8a86aaabcd413fcbcd0e83946b2a73d4f4a49e..5801f98a7b634c2c391d531be42f3c4878cc1d2c 100644
--- a/tests/test_server_side_scripting.py
+++ b/tests/test_server_side_scripting.py
@@ -70,11 +70,11 @@ def clean_database():
         d.delete()
 
 
-def setup():
+def setup_function(function):
     clean_database()
 
 
-def teardown():
+def teardown_function(function):
     admin.set_server_property("SERVER_SIDE_SCRIPTING_BIN_DIRS",
                               _ORIGINAL_SERVER_SCRIPTING_BIN_DIR)
     clean_database()
diff --git a/tests/test_state.py b/tests/test_state.py
index e376dd081cda5ed3509b15363f4313490280738c..eee4b1dad6485ab9e2c238a0cc87398eab1dbafa 100644
--- a/tests/test_state.py
+++ b/tests/test_state.py
@@ -144,16 +144,16 @@ def setup_module():
         "State1").insert()
 
 
-def teardown():
+def teardown_function(function):
     switch_to_admin_user()
     d = db.execute_query("FIND TestRT")
     if len(d) > 0:
         d.delete(flags={"forceFinalState": "true"})
 
 
-def setup():
+def setup_function(function):
     admin.set_server_property("EXT_ENTITY_STATE", "ENABLED")
-    teardown()
+    teardown_function(function)
     db.RecordType("TestRT").insert()
 
 
diff --git a/tests/test_tickets.py b/tests/test_tickets.py
index bcffcd31a05b1fcce33af415f9e27bcc11579b6b..fb41af36e86131fa913d83faf391ca02c90cd82a 100644
--- a/tests/test_tickets.py
+++ b/tests/test_tickets.py
@@ -32,14 +32,14 @@ import pytest
 from tests import test_misc
 
 
-def setup():
+def setup_function(function):
     d = db.execute_query("FIND Test*")
     if len(d) > 0:
         d.delete()
 
 
-def teardown():
-    setup()
+def teardown_function(function):
+    setup_function(function)
 
 
 def test_ticket_103a():
diff --git a/tests/test_tickets_300.py b/tests/test_tickets_300.py
index 43fbd97f0fc3ea67e23736657d9cac07886fff35..cf34637d82d3a8dfb00751d26f3b7cfc40351d60 100644
--- a/tests/test_tickets_300.py
+++ b/tests/test_tickets_300.py
@@ -45,11 +45,11 @@ def teardown_module():
     _delete_test_entities()
 
 
-def setup():
+def setup_function(function):
     setup_module()
 
 
-def teardown():
+def teardown_function(function):
     teardown_module()
 
 
diff --git a/tests/test_update.py b/tests/test_update.py
index f783ff1339289679e1866e7ae8130560d1c76500..becaf5bb4469650f54c481977b1e05d2c667812f 100644
--- a/tests/test_update.py
+++ b/tests/test_update.py
@@ -34,14 +34,14 @@ from caosdb.common.utils import xml2str
 from caosdb.common.models import raise_errors
 
 
-def setup():
+def setup_function(function):
     d = db.execute_query("FIND Entity WITH ID > 99")
     if len(d) > 0:
         d.delete()
 
 
-def teardown():
-    setup()
+def teardown_function(function):
+    setup_function(function)
 
 
 def test_property_no_id():
diff --git a/tests/test_version.py b/tests/test_version.py
index 2b8aafa882832a419fe1b796a703b0b31cb3b766..4abf10a19f8e4c059334d5e247b0aae59738f395 100644
--- a/tests/test_version.py
+++ b/tests/test_version.py
@@ -25,14 +25,14 @@ from pytest import mark, raises
 import caosdb as c
 
 
-def setup():
+def setup_function(function):
     d = c.execute_query("FIND Test*")
     if len(d) > 0:
         d.delete()
 
 
-def teardown():
-    setup()
+def teardown_function(function):
+    setup_function(function)
 
 
 def test_version_object():
diff --git a/tox.ini b/tox.ini
index 70f0bb3c0ecf5554544c89fbf974ba82486797a5..26c5d1594c48fe755a355a3aee711fd6608c6f97 100644
--- a/tox.ini
+++ b/tox.ini
@@ -12,4 +12,4 @@ commands_pre=pip install ../caosdb-pylib/
     python --version
     python -c "import caosdb; print(caosdb.version.version)"
 # Add "-x" to stop at first error.
-commands=pytest --cov=caosdb -vvx {posargs}
+commands=pytest --cov=caosdb -vv {posargs}