diff --git a/fileutils/fileutils.go b/fileutils/fileutils.go
index a4033ba..af05ae9 100644
--- a/fileutils/fileutils.go
+++ b/fileutils/fileutils.go
@@ -29,22 +29,7 @@
 			return err
 		}
 
-		// https://golang.org/cmd/go/#hdr-Description_of_package_lists
 		name := filepath.Base(path)
-		if strings.HasPrefix(name, ".") ||
-			(strings.HasPrefix(name, "_") && name != "_testdata") ||
-			(!tests && name == "_testdata") ||
-			(!tests && name == "testdata") ||
-			(!tests && strings.HasSuffix(name, "_test.go")) {
-			if info.IsDir() {
-				return filepath.SkipDir
-			}
-			return nil
-		}
-
-		if info.IsDir() {
-			return nil
-		}
 
 		relevantFile := false
 		for _, ext := range goFileTypes {
@@ -53,7 +38,45 @@
 				break
 			}
 		}
-		if !relevantFile {
+
+		testdata := false
+		for _, n := range strings.Split(filepath.Dir(path), string(filepath.Separator)) {
+			if n == "testdata" || n == "_testdata" {
+				testdata = true
+			}
+		}
+
+		skip := false
+		switch {
+		// Include all files in a testdata folder
+		case tests && testdata:
+			skip = false
+
+		// https://golang.org/cmd/go/#hdr-Description_of_package_lists
+		case strings.HasPrefix(name, "."):
+			skip = true
+		case strings.HasPrefix(name, "_") && name != "_testdata":
+			skip = true
+
+		case !tests && name == "_testdata" && info.IsDir():
+			skip = true
+		case !tests && name == "testdata" && info.IsDir():
+			skip = true
+		case !tests && strings.HasSuffix(name, "_test.go") && !info.IsDir():
+			skip = true
+
+		case !relevantFile && !info.IsDir():
+			skip = true
+		}
+
+		if skip {
+			if info.IsDir() {
+				return filepath.SkipDir
+			}
+			return nil
+		}
+
+		if info.IsDir() {
 			return nil
 		}
 
diff --git a/fileutils/fileutils_test.go b/fileutils/fileutils_test.go
index 24b1af2..69bb60a 100644
--- a/fileutils/fileutils_test.go
+++ b/fileutils/fileutils_test.go
@@ -15,7 +15,7 @@
 	dst := mktemp(t)
 	defer RemoveAll(dst)
 	src := filepath.Join("_testdata", "copyfile")
-	if err := Copypath(dst, src); err != nil {
+	if err := Copypath(dst, src, true); err != nil {
 		t.Fatalf("copypath(%s, %s): %v", dst, src, err)
 	}
 	res, err := os.Readlink(filepath.Join(dst, "a", "rick"))
