diff --git a/alldocs.go b/alldocs.go
index 293e44b..656ba9d 100644
--- a/alldocs.go
+++ b/alldocs.go
@@ -21,7 +21,7 @@
 Fetch a remote dependency
 
 Usage:
-        gvt fetch [-branch branch] [-revision rev | -tag tag] [-precaire] [-no-recurse] importpath
+        gvt fetch [-branch branch] [-revision rev | -tag tag] [-precaire] [-no-recurse] [-t] importpath
 
 fetch vendors an upstream import path.
 
@@ -29,6 +29,8 @@
 from private repositories that cannot be probed.
 
 Flags:
+	-t
+		fetch also _test.go files and testdata.
 	-branch branch
 		fetch from the named branch. Will also be used by gvt update.
 		If not supplied the default upstream branch will be used.
diff --git a/fetch.go b/fetch.go
index 434274e..cf8bb2c 100644
--- a/fetch.go
+++ b/fetch.go
@@ -20,6 +20,7 @@
 	tag       string
 	noRecurse bool
 	insecure  bool // Allow the use of insecure protocols
+	tests     bool
 
 	recurse bool // should we fetch recursively
 )
@@ -30,11 +31,12 @@
 	fs.StringVar(&tag, "tag", "", "tag of the package")
 	fs.BoolVar(&noRecurse, "no-recurse", false, "do not fetch recursively")
 	fs.BoolVar(&insecure, "precaire", false, "allow the use of insecure protocols")
+	fs.BoolVar(&tests, "t", false, "fetch _test.go files and testdata")
 }
 
 var cmdFetch = &Command{
 	Name:      "fetch",
-	UsageLine: "fetch [-branch branch] [-revision rev | -tag tag] [-precaire] [-no-recurse] importpath",
+	UsageLine: "fetch [-branch branch] [-revision rev | -tag tag] [-precaire] [-no-recurse] [-t] importpath",
 	Short:     "fetch a remote dependency",
 	Long: `fetch vendors an upstream import path.
 
@@ -42,6 +44,8 @@
 from private repositories that cannot be probed.
 
 Flags:
+	-t
+		fetch also _test.go files and testdata.
 	-branch branch
 		fetch from the named branch. Will also be used by gvt update.
 		If not supplied the default upstream branch will be used.
@@ -112,6 +116,7 @@
 		Revision:   rev,
 		Branch:     branch,
 		Path:       extra,
+		NoTests:    !tests,
 	}
 
 	if err := m.AddDependency(dep); err != nil {
@@ -121,7 +126,7 @@
 	dst := filepath.Join(vendorDir(), dep.Importpath)
 	src := filepath.Join(wc.Dir(), dep.Path)
 
-	if err := fileutils.Copypath(dst, src, true); err != nil {
+	if err := fileutils.Copypath(dst, src, !dep.NoTests); err != nil {
 		return err
 	}
 
diff --git a/gbvendor/manifest.go b/gbvendor/manifest.go
index f4d973e..397208f 100644
--- a/gbvendor/manifest.go
+++ b/gbvendor/manifest.go
@@ -82,6 +82,10 @@
 	// Path is the path inside the Repository where the
 	// dependency was fetched from.
 	Path string `json:"path,omitempty"`
+
+	// NoTests indicates that test files were ignored.
+	// In the negative for backwards compatibility.
+	NoTests bool `json:"notests,omitempty"`
 }
 
 // WriteManifest writes a Manifest to the path. If the manifest does
diff --git a/restore.go b/restore.go
index 81d338d..d2a3309 100644
--- a/restore.go
+++ b/restore.go
@@ -91,10 +91,14 @@
 }
 
 func downloadDependency(dep vendor.Dependency, errors *uint32, vendorDir string, recursive bool) error {
+	testsMsg := ""
+	if !dep.NoTests {
+		testsMsg = "(including tests)"
+	}
 	if recursive {
-		log.Printf("fetching recursive %s", dep.Importpath)
+		log.Printf("fetching recursive %s %s", dep.Importpath, testsMsg)
 	} else {
-		log.Printf("fetching %s", dep.Importpath)
+		log.Printf("fetching %s %s", dep.Importpath, testsMsg)
 	}
 
 	repo, _, err := vendor.DeduceRemoteRepo(dep.Importpath, rbInsecure)
@@ -116,7 +120,7 @@
 		}
 	}
 
-	if err := fileutils.Copypath(dst, src, true); err != nil {
+	if err := fileutils.Copypath(dst, src, !dep.NoTests); err != nil {
 		return err
 	}
 
diff --git a/update.go b/update.go
index e1f261d..1fe48a5 100644
--- a/update.go
+++ b/update.go
@@ -96,6 +96,7 @@
 				Revision:   rev,
 				Branch:     branch,
 				Path:       extra,
+				NoTests:    d.NoTests,
 			}
 
 			if err := fileutils.RemoveAll(filepath.Join(vendorDir(), filepath.FromSlash(d.Importpath))); err != nil {
@@ -106,7 +107,7 @@
 			dst := filepath.Join(vendorDir(), filepath.FromSlash(dep.Importpath))
 			src := filepath.Join(wc.Dir(), dep.Path)
 
-			if err := fileutils.Copypath(dst, src, true); err != nil {
+			if err := fileutils.Copypath(dst, src, !d.NoTests); err != nil {
 				return err
 			}
 
