diff --git a/.pylintrc b/.pylintrc
index 12aa73b..bce63fc 100644
--- a/.pylintrc
+++ b/.pylintrc
@@ -8,3 +8,6 @@
 indent-string='  '
 indent-after-paren=2
 good-names=i,f
+
+[SIMILARITIES]
+min-similarity-lines=6
diff --git a/tests/container-images/base/test_container_structure_base.py b/tests/container-images/base/test_container_structure_base.py
index 69dec54..d62b356 100755
--- a/tests/container-images/base/test_container_structure_base.py
+++ b/tests/container-images/base/test_container_structure_base.py
@@ -15,22 +15,10 @@
 import pytest
 
 @pytest.fixture(scope="module")
-def container_run(request, docker_client, base_image):
-  print("Starting base-container...")
-  container_run = docker_client.containers.run(
-    image=base_image.id,
-    command="tail -f /dev/null",
-    detach=True,
-    auto_remove=True
-  )
-
-  def stop_container():
-    print("Stopping base-container...")
-    container_run.stop(timeout=1)
-
-  request.addfinalizer(stop_container)
-
-  return container_run
+def container_run(docker_client, container_endless_run_factory, base_image):
+  container_run = container_endless_run_factory(docker_client, base_image)
+  yield container_run
+  container_run.stop(timeout=1)
 
 
 def test_base_contains_git(container_run):
diff --git a/tests/container-images/conftest.py b/tests/container-images/conftest.py
index 0d47f37..69172df 100644
--- a/tests/container-images/conftest.py
+++ b/tests/container-images/conftest.py
@@ -135,3 +135,17 @@
                            gerrit_config, port)
 
   return get_gerrit_container
+
+@pytest.fixture(scope="session")
+def container_endless_run_factory():
+  def get_container(docker_client, image):
+    return docker_client.containers.run(
+      image=image.id,
+      entrypoint="/bin/bash",
+      command=["-c", "tail -f /dev/null"],
+      user="gerrit",
+      detach=True,
+      auto_remove=True
+    )
+
+  return get_container
diff --git a/tests/container-images/gerrit-base/test_container_structure_gerrit_base.py b/tests/container-images/gerrit-base/test_container_structure_gerrit_base.py
index 475f355..24f06da 100755
--- a/tests/container-images/gerrit-base/test_container_structure_gerrit_base.py
+++ b/tests/container-images/gerrit-base/test_container_structure_gerrit_base.py
@@ -17,22 +17,11 @@
 import pytest
 
 @pytest.fixture(scope="module")
-def container_run(request, docker_client, gerrit_base_image):
-  container_run = docker_client.containers.run(
-    image=gerrit_base_image.id,
-    entrypoint="/bin/bash",
-    command=["-c", "tail -f /dev/null"],
-    user="gerrit",
-    detach=True,
-    auto_remove=True
-  )
+def container_run(docker_client, container_endless_run_factory, gerrit_base_image):
+  container_run = container_endless_run_factory(docker_client, gerrit_base_image)
+  yield container_run
+  container_run.stop(timeout=1)
 
-  def stop_container():
-    container_run.stop(timeout=1)
-
-  request.addfinalizer(stop_container)
-
-  return container_run
 
 def test_gerrit_base_inherits_from_base(gerrit_base_image):
   contains_tag = False
diff --git a/tests/container-images/gerrit-init/test_container_integration_gerrit_init_h2.py b/tests/container-images/gerrit-init/test_container_integration_gerrit_init_h2.py
index 1cbda4a..7271973 100644
--- a/tests/container-images/gerrit-init/test_container_integration_gerrit_init_h2.py
+++ b/tests/container-images/gerrit-init/test_container_integration_gerrit_init_h2.py
@@ -50,8 +50,7 @@
   return container_run
 
 @pytest.fixture(scope="class")
-def container_run_endless(
-    request, docker_client, gerrit_init_image, tmp_path_factory):
+def container_run_endless(docker_client, gerrit_init_image, tmp_path_factory):
   tmp_site_dir = tmp_path_factory.mktemp('gerrit_site')
   container_run = docker_client.containers.run(
     image=gerrit_init_image.id,
@@ -68,12 +67,8 @@
     auto_remove=True
   )
 
-  def stop_container():
-    container_run.stop(timeout=1)
-
-  request.addfinalizer(stop_container)
-
-  return container_run
+  yield container_run
+  container_run.stop(timeout=1)
 
 @pytest.mark.incremental
 class TestGerritInitEmptySite:
diff --git a/tests/container-images/gerrit-init/test_container_structure_gerrit_init.py b/tests/container-images/gerrit-init/test_container_structure_gerrit_init.py
index c50b543..977cf32 100755
--- a/tests/container-images/gerrit-init/test_container_structure_gerrit_init.py
+++ b/tests/container-images/gerrit-init/test_container_structure_gerrit_init.py
@@ -15,22 +15,11 @@
 import pytest
 
 @pytest.fixture(scope="module")
-def container_run(request, docker_client, gerrit_init_image):
-  container_run = docker_client.containers.run(
-    image=gerrit_init_image.id,
-    entrypoint="/bin/bash",
-    command=["-c", "tail -f /dev/null"],
-    user="gerrit",
-    detach=True,
-    auto_remove=True
-  )
+def container_run(docker_client, container_endless_run_factory, gerrit_init_image):
+  container_run = container_endless_run_factory(docker_client, gerrit_init_image)
+  yield container_run
+  container_run.stop(timeout=1)
 
-  def stop_container():
-    container_run.stop(timeout=1)
-
-  request.addfinalizer(stop_container)
-
-  return container_run
 
 @pytest.fixture(scope="function",
                 params=["/var/tools/gerrit_init.py",
diff --git a/tests/container-images/gerrit-master/test_container_structure_gerrit_master.py b/tests/container-images/gerrit-master/test_container_structure_gerrit_master.py
index f181d17..ee1ee88 100755
--- a/tests/container-images/gerrit-master/test_container_structure_gerrit_master.py
+++ b/tests/container-images/gerrit-master/test_container_structure_gerrit_master.py
@@ -15,20 +15,11 @@
 import pytest
 
 @pytest.fixture(scope="module")
-def container_run(request, docker_client, gerrit_master_image):
-  container_run = docker_client.containers.run(
-    image=gerrit_master_image.id,
-    user="gerrit",
-    detach=True,
-    auto_remove=True
-  )
+def container_run(docker_client, container_endless_run_factory, gerrit_master_image):
+  container_run = container_endless_run_factory(docker_client, gerrit_master_image)
+  yield container_run
+  container_run.stop(timeout=1)
 
-  def stop_container():
-    container_run.stop(timeout=1)
-
-  request.addfinalizer(stop_container)
-
-  return container_run
 
 def test_gerrit_master_inherits_from_gerrit_base(gerrit_master_image):
   contains_tag = False
diff --git a/tests/container-images/gerrit-slave/test_container_structure_gerrit_slave.py b/tests/container-images/gerrit-slave/test_container_structure_gerrit_slave.py
index 8d151f8..ec72e4c 100755
--- a/tests/container-images/gerrit-slave/test_container_structure_gerrit_slave.py
+++ b/tests/container-images/gerrit-slave/test_container_structure_gerrit_slave.py
@@ -17,22 +17,11 @@
 import pytest
 
 @pytest.fixture(scope="module")
-def container_run(request, docker_client, gerrit_slave_image):
-  container_run = docker_client.containers.run(
-    image=gerrit_slave_image.id,
-    entrypoint="/bin/bash",
-    command=["-c", "tail -f /dev/null"],
-    user="gerrit",
-    detach=True,
-    auto_remove=True
-  )
+def container_run(docker_client, container_endless_run_factory, gerrit_slave_image):
+  container_run = container_endless_run_factory(docker_client, gerrit_slave_image)
+  yield container_run
+  container_run.stop(timeout=1)
 
-  def stop_container():
-    container_run.stop(timeout=1)
-
-  request.addfinalizer(stop_container)
-
-  return container_run
 
 @pytest.fixture(scope="function",
                 params=["/var/tools/start", "/var/tools/download_db_driver"])
diff --git a/tests/container-images/git-gc/test_container_structure_gitgc.py b/tests/container-images/git-gc/test_container_structure_gitgc.py
index 9a858ec..bd0e2ca 100644
--- a/tests/container-images/git-gc/test_container_structure_gitgc.py
+++ b/tests/container-images/git-gc/test_container_structure_gitgc.py
@@ -15,24 +15,10 @@
 import pytest
 
 @pytest.fixture(scope="module")
-def container_run(request, docker_client, gitgc_image):
-  print("Starting git-gc-container...")
-  container_run = docker_client.containers.run(
-    image=gitgc_image.id,
-    entrypoint="/bin/bash",
-    command=["-c", "tail -f /dev/null"],
-    user="gerrit",
-    detach=True,
-    auto_remove=True
-  )
-
-  def stop_container():
-    print("Stopping git-gc-container...")
-    container_run.stop(timeout=1)
-
-  request.addfinalizer(stop_container)
-
-  return container_run
+def container_run(docker_client, container_endless_run_factory, gitgc_image):
+  container_run = container_endless_run_factory(docker_client, gitgc_image)
+  yield container_run
+  container_run.stop(timeout=1)
 
 
 def test_gitgc_inherits_from_base(gitgc_image):
diff --git a/tests/container-images/mysql-replication-init/test_container_structure_mysql_replication_init.py b/tests/container-images/mysql-replication-init/test_container_structure_mysql_replication_init.py
index 7683886..b40cc3d 100644
--- a/tests/container-images/mysql-replication-init/test_container_structure_mysql_replication_init.py
+++ b/tests/container-images/mysql-replication-init/test_container_structure_mysql_replication_init.py
@@ -15,7 +15,7 @@
 import pytest
 
 @pytest.fixture(scope="module")
-def container_run(request, docker_client, mysql_replication_init_image):
+def container_run(docker_client, mysql_replication_init_image):
   container_run = docker_client.containers.run(
     image=mysql_replication_init_image.id,
     entrypoint="/bin/bash",
@@ -24,13 +24,8 @@
     auto_remove=True
   )
 
-  def stop_container():
-    container_run.stop(timeout=1)
-
-  request.addfinalizer(stop_container)
-
-  return container_run
-
+  yield container_run
+  container_run.stop(timeout=1)
 
 def test_mysql_replication_init_contains_mysql_client(container_run):
   exit_code, _ = container_run.exec_run(
