diff --git a/lib/testutil/integration/testdata/integration_test.go b/lib/testutil/integration/testdata/integration_test.go
new file mode 100644
index 0000000..97308d7
--- /dev/null
+++ b/lib/testutil/integration/testdata/integration_test.go
@@ -0,0 +1,28 @@
+package testdata
+
+import (
+	"testing"
+
+	"v.io/core/veyron/lib/modules"
+	"v.io/core/veyron/lib/testutil/integration"
+	_ "v.io/core/veyron/profiles"
+)
+
+func TestHelperProcess(t *testing.T) {
+	modules.DispatchInTest()
+}
+
+func TestBinaryFromPath(t *testing.T) {
+	env := integration.NewTestEnvironment(t)
+	defer env.Cleanup()
+
+	bash := env.BinaryFromPath("/bin/bash")
+	if want, got := "hello world\n", bash.Start("-c", "echo hello world").Output(); want != got {
+		t.Fatalf("unexpected output, want %s, got %s", want, got)
+	}
+
+	// TODO(sjr): revive this once stderr handling is fixed.
+	// if want, got := "hello world\n", bash.Start("-c", "echo hello world 1>&2").ErrorOutput(); want != got {
+	//	t.Fatalf("unexpected output, want %s, got %s", want, got)
+	// }
+}
diff --git a/lib/testutil/integration/util.go b/lib/testutil/integration/util.go
index 208fad1..4324302 100644
--- a/lib/testutil/integration/util.go
+++ b/lib/testutil/integration/util.go
@@ -79,6 +79,12 @@
 	// Cleanup cleans up the environment and deletes all its artifacts.
 	Cleanup()
 
+	// BinaryFromPath returns a new TestBinary that, when started, will
+	// execute the executable or script at the given path.
+	//
+	// E.g. env.BinaryFromPath("/bin/bash").Start("-c", "echo hello world").Output() -> "hello world"
+	BinaryFromPath(path string) TestBinary
+
 	// BuildGoPkg expects a Go package path that identifies a "main"
 	// package and returns a TestBinary representing the newly built
 	// binary.
@@ -369,6 +375,15 @@
 	writeStringOrDie(e.t, file, fmt.Sprintf("<< Exited shell: %s\n", state.String()))
 }
 
+func (e *integrationTestEnvironment) BinaryFromPath(path string) TestBinary {
+	return &integrationTestBinary{
+		env:         e,
+		envVars:     nil,
+		path:        path,
+		cleanupFunc: func() {},
+	}
+}
+
 func (e *integrationTestEnvironment) BuildGoPkg(binary_path string) TestBinary {
 	e.t.Logf("building %s...", binary_path)
 	if cached_binary := e.builtBinaries[binary_path]; cached_binary != nil {
