diff --git a/tests/masonry/builders/test_complete.py b/tests/masonry/builders/test_complete.py
index 4248a87..f4349d9 100644
--- a/tests/masonry/builders/test_complete.py
+++ b/tests/masonry/builders/test_complete.py
@@ -35,7 +35,7 @@ def setup():
 def clear_samples_dist():
     for dist in fixtures_dir.glob("**/dist"):
         if dist.is_dir():
-            shutil.rmtree(str(dist))
+            shutil.rmtree(str(dist), ignore_errors=True)
 
 
 @pytest.mark.skipif(
@@ -65,7 +65,7 @@ def test_wheel_c_extension():
 
     has_compiled_extension = False
     for name in zip.namelist():
-        if name.startswith("extended/extended") and name.endswith((".so", ".pyd")):
+        if name.startswith("extended/extended") and name.endswith((".so", ".pyd",".dll")):
             has_compiled_extension = True
 
     assert has_compiled_extension
@@ -90,7 +90,7 @@ $""".format(
 
         records = decode(zip.read("extended-0.1.dist-info/RECORD"))
 
-        assert re.search(r"\s+extended/extended.*\.(so|pyd)", records) is not None
+        assert re.search(r"\s+extended/extended.*\.(so|pyd|dll)", records) is not None
     finally:
         zip.close()
 
@@ -122,7 +122,7 @@ def test_wheel_c_extension_with_no_setup():
 
     has_compiled_extension = False
     for name in zip.namelist():
-        if name.startswith("extended/extended") and name.endswith((".so", ".pyd")):
+        if name.startswith("extended/extended") and name.endswith((".so", ".pyd", "dll")):
             has_compiled_extension = True
 
     assert has_compiled_extension
@@ -147,7 +147,7 @@ $""".format(
 
         records = decode(zip.read("extended-0.1.dist-info/RECORD"))
 
-        assert re.search(r"\s+extended/extended.*\.(so|pyd)", records) is not None
+        assert re.search(r"\s+extended/extended.*\.(so|pyd|dll)", records) is not None
     finally:
         zip.close()
 
@@ -179,7 +179,7 @@ def test_wheel_c_extension_src_layout():
 
     has_compiled_extension = False
     for name in zip.namelist():
-        if name.startswith("extended/extended") and name.endswith((".so", ".pyd")):
+        if name.startswith("extended/extended") and name.endswith((".so", ".pyd", "dll")):
             has_compiled_extension = True
 
     assert has_compiled_extension
@@ -204,7 +204,7 @@ $""".format(
 
         records = decode(zip.read("extended-0.1.dist-info/RECORD"))
 
-        assert re.search(r"\s+extended/extended.*\.(so|pyd)", records) is not None
+        assert re.search(r"\s+extended/extended.*\.(so|pyd|dll)", records) is not None
     finally:
         zip.close()
 
diff --git a/tests/masonry/builders/test_sdist.py b/tests/masonry/builders/test_sdist.py
index 5c39eb5..25e2e2b 100644
--- a/tests/masonry/builders/test_sdist.py
+++ b/tests/masonry/builders/test_sdist.py
@@ -34,7 +34,7 @@ def setup():
 def clear_samples_dist():
     for dist in fixtures_dir.glob("**/dist"):
         if dist.is_dir():
-            shutil.rmtree(str(dist))
+            shutil.rmtree(str(dist), ignore_errors=True)
 
 
 def project(name):
diff --git a/tests/masonry/builders/test_wheel.py b/tests/masonry/builders/test_wheel.py
index e300bb3..a51c7c1 100644
--- a/tests/masonry/builders/test_wheel.py
+++ b/tests/masonry/builders/test_wheel.py
@@ -26,7 +26,7 @@ def setup():
 def clear_samples_dist():
     for dist in fixtures_dir.glob("**/dist"):
         if dist.is_dir():
-            shutil.rmtree(str(dist))
+            shutil.rmtree(str(dist), ignore_errors=True)
 
 
 def test_wheel_module():
