--- a/src/lib.rs
+++ b/src/lib.rs
@@ -549,15 +549,14 @@ fn find_lib_exe(_arch: &str) -> Option<C
 
 #[cfg(test)]
 mod tests {
-    use std::path::PathBuf;
-
     use super::*;
 
     #[cfg(unix)]
+    #[ignore]
     #[test]
     fn generate() {
         // FIXME: Use "target/<arch>" dirs for temporary files.
-        let mut dir = PathBuf::from(env!("CARGO_MANIFEST_DIR"));
+        let mut dir = std::env::temp_dir();
         dir.push("target");
         dir.push("x86_64-pc-windows-gnu");
         dir.push("python3-dll");
@@ -593,9 +592,10 @@ mod tests {
     }
 
     #[cfg(unix)]
+    #[ignore]
     #[test]
     fn generate_gnu32() {
-        let mut dir = PathBuf::from(env!("CARGO_MANIFEST_DIR"));
+        let mut dir = std::env::temp_dir();
         dir.push("target");
         dir.push("i686-pc-windows-gnu");
         dir.push("python3-dll");
@@ -605,7 +605,7 @@ mod tests {
 
     #[test]
     fn generate_msvc() {
-        let mut dir = PathBuf::from(env!("CARGO_MANIFEST_DIR"));
+        let mut dir = std::env::temp_dir();
         dir.push("target");
         dir.push("x86_64-pc-windows-msvc");
         dir.push("python3-dll");
@@ -642,7 +642,7 @@ mod tests {
 
     #[test]
     fn generate_msvc32() {
-        let mut dir = PathBuf::from(env!("CARGO_MANIFEST_DIR"));
+        let mut dir = std::env::temp_dir();
         dir.push("target");
         dir.push("i686-pc-windows-msvc");
         dir.push("python3-dll");
@@ -652,7 +652,7 @@ mod tests {
 
     #[test]
     fn generate_msvc_arm64() {
-        let mut dir = PathBuf::from(env!("CARGO_MANIFEST_DIR"));
+        let mut dir = std::env::temp_dir();
         dir.push("target");
         dir.push("aarch64-pc-windows-msvc");
         dir.push("python3-dll");
