diff --git a/tests/dnszone/env_cleanup.yml b/tests/dnszone/env_cleanup.yml
new file mode 100644
index 0000000000000000000000000000000000000000..76996092accf2323bbaf0ac742d2a9e5dd013458
--- /dev/null
+++ b/tests/dnszone/env_cleanup.yml
@@ -0,0 +1,13 @@
+---
+- name: Ensure zone is absent.
+  ipadnszone:
+    ipaadmin_password: SomeADMINpassword
+    name:
+      - testzone.local
+      - test1.testzone.local
+      - test2.testzone.local
+      - test3.testzone.local
+      - 2.0.192.in-addr.arpa.
+      - 0.0.0.0.0.0.0.0.0.0.0.0.0.0.d.f.ip6.arpa.
+      - 1.0.0.0.e.f.a.c.8.b.d.0.1.0.0.2.ip6.arpa.
+    state: absent
diff --git a/tests/dnszone/env_setup.yml b/tests/dnszone/env_setup.yml
new file mode 100644
index 0000000000000000000000000000000000000000..ce4378111367260b8d52a7c6a60ccc01b638355a
--- /dev/null
+++ b/tests/dnszone/env_setup.yml
@@ -0,0 +1,3 @@
+---
+- name: Cleanup test environment.
+  include_tasks: env_cleanup.yml
diff --git a/tests/dnszone/env_teardown.yml b/tests/dnszone/env_teardown.yml
new file mode 100644
index 0000000000000000000000000000000000000000..ce4378111367260b8d52a7c6a60ccc01b638355a
--- /dev/null
+++ b/tests/dnszone/env_teardown.yml
@@ -0,0 +1,3 @@
+---
+- name: Cleanup test environment.
+  include_tasks: env_cleanup.yml
diff --git a/tests/dnszone/test_dnszone.yml b/tests/dnszone/test_dnszone.yml
index bd820dfa9d7de32dbf9de14ac0a8c0bc8449a1ef..1c2997485eabdf74a21019e415ec52c88934e315 100644
--- a/tests/dnszone/test_dnszone.yml
+++ b/tests/dnszone/test_dnszone.yml
@@ -7,11 +7,8 @@
   tasks:
 
   # Setup
-  - name: Ensure zone is absent.
-    ipadnszone:
-      ipaadmin_password: SomeADMINpassword
-      name: testzone.local
-      state: absent
+  - name: Setup testing environment
+    include_tasks: env_setup.yml
 
   # Tests
   - name: Ensure zone is present.
@@ -186,3 +183,7 @@
       state: absent
     register: result
     failed_when: result.changed
+
+  # Teardown
+  - name: Teardown testing environment
+    include_tasks: env_teardown.yml
diff --git a/tests/dnszone/test_dnszone_mod.yml b/tests/dnszone/test_dnszone_mod.yml
index e4b503ae7d644c01966c6478ac7308b7bf56de30..4cff8ee3a843015ff726925875a4e554d06131d8 100644
--- a/tests/dnszone/test_dnszone_mod.yml
+++ b/tests/dnszone/test_dnszone_mod.yml
@@ -7,11 +7,8 @@
   tasks:
 
   # Setup
-  - name: Ensure zone is absent.
-    ipadnszone:
-      ipaadmin_password: SomeADMINpassword
-      name: testzone.local
-      state: absent
+  - name: Setup testing environment
+    include_tasks: env_setup.yml
 
   # Tests
   - name: Ensure zone is present.
@@ -317,3 +314,7 @@
       admin_email: admin2@example.com
     register: result
     failed_when: result.changed
+
+  # Teardown
+  - name: Teardown testing environment
+    include_tasks: env_teardown.yml
diff --git a/tests/dnszone/test_dnszone_name_from_ip.yml b/tests/dnszone/test_dnszone_name_from_ip.yml
index 9bd2eb0de2b0da5c5c98702a0905b6ee54161384..fb1086d652c834b4b809f0fcaa516fe7493c1692 100644
--- a/tests/dnszone/test_dnszone_name_from_ip.yml
+++ b/tests/dnszone/test_dnszone_name_from_ip.yml
@@ -7,17 +7,10 @@
   tasks:
 
   # Setup
-  - name: Ensure zone is absent.
-    ipadnszone:
-      ipaadmin_password: SomeADMINpassword
-      name: "{{ item }}"
-      state: absent
-    with_items:
-      - 2.0.192.in-addr.arpa.
-      - 0.0.0.0.0.0.0.0.0.0.0.0.0.0.d.f.ip6.arpa.
-      - 1.0.0.0.e.f.a.c.8.b.d.0.1.0.0.2.ip6.arpa.
+  - name: Setup testing environment
+    include_tasks: env_setup.yml
 
-  # tests
+  # Tests
   - name: Ensure zone exists for reverse IP.
     ipadnszone:
       ipaadmin_password: SomeADMINpassword
@@ -100,13 +93,6 @@
     register: result
     failed_when: result.changed
 
-  # Cleanup
-  - name: Ensure zone is absent.
-    ipadnszone:
-      ipaadmin_password: SomeADMINpassword
-      name: "{{ item }}"
-      state: absent
-    with_items:
-      - "{{ ipv6_zone.dnszone.name }}"
-      - "{{ ipv6_sec_zone.dnszone.name }}"
-      - "{{ ipv4_zone.dnszone.name }}"
+  # Teardown
+  - name: Teardown testing environment
+    include_tasks: env_teardown.yml