diff --git a/cabal-install/tests/IntegrationTests/exec/adds_sandbox_bin_directory_to_path.out b/cabal-install/tests/IntegrationTests/exec/adds_sandbox_bin_directory_to_path.out
deleted file mode 100644
index 27df3614e9486111c642c052faafcc31f215439b..0000000000000000000000000000000000000000
--- a/cabal-install/tests/IntegrationTests/exec/adds_sandbox_bin_directory_to_path.out
+++ /dev/null
@@ -1 +0,0 @@
-This is my-executable
diff --git a/cabal-install/tests/IntegrationTests/exec/adds_sandbox_bin_directory_to_path.sh b/cabal-install/tests/IntegrationTests/exec/adds_sandbox_bin_directory_to_path.sh
deleted file mode 100644
index cc344c69ae95081f138970744f2cbc1158b82783..0000000000000000000000000000000000000000
--- a/cabal-install/tests/IntegrationTests/exec/adds_sandbox_bin_directory_to_path.sh
+++ /dev/null
@@ -1,10 +0,0 @@
-. ./common.sh
-
-cabal sandbox delete > /dev/null
-cabal exec my-executable && die "Unexpectedly found executable"
-
-cabal sandbox init > /dev/null
-cabal install > /dev/null
-
-# Execute indirectly via bash to ensure that we go through $PATH
-cabal exec sh -- -c my-executable || die "Did not find executable"
diff --git a/cabal-testsuite/PackageTests/Exec/Foo.hs b/cabal-testsuite/PackageTests/Exec/Foo.hs
new file mode 100644
index 0000000000000000000000000000000000000000..5924b011a002890f1eb273ff06f119765ab5e765
--- /dev/null
+++ b/cabal-testsuite/PackageTests/Exec/Foo.hs
@@ -0,0 +1,4 @@
+module Foo where
+
+foo :: String
+foo = "foo"
diff --git a/cabal-testsuite/PackageTests/Exec/My.hs b/cabal-testsuite/PackageTests/Exec/My.hs
new file mode 100644
index 0000000000000000000000000000000000000000..b467ba86e0942cc63d1a914faac5dfd10ff77bc8
--- /dev/null
+++ b/cabal-testsuite/PackageTests/Exec/My.hs
@@ -0,0 +1,5 @@
+module Main where
+
+main :: IO ()
+main = do
+    putStrLn "This is my-executable"
diff --git a/cabal-testsuite/PackageTests/Exec/my.cabal b/cabal-testsuite/PackageTests/Exec/my.cabal
new file mode 100644
index 0000000000000000000000000000000000000000..797a2c7d4f1f3ebb240ed4eb32cb5207329b9a2b
--- /dev/null
+++ b/cabal-testsuite/PackageTests/Exec/my.cabal
@@ -0,0 +1,14 @@
+name:           my
+version:        0.1
+license:        BSD3
+cabal-version:  >= 1.2
+build-type:     Simple
+
+library
+    exposed-modules:    Foo
+    build-depends:      base
+
+
+executable my-executable
+    main-is:            My.hs
+    build-depends:      base
diff --git a/cabal-testsuite/PackageTests/Exec/sandbox-path.test.hs b/cabal-testsuite/PackageTests/Exec/sandbox-path.test.hs
new file mode 100644
index 0000000000000000000000000000000000000000..ab4b666c6f7757fe50c98dbb2e9afffa501a7ee2
--- /dev/null
+++ b/cabal-testsuite/PackageTests/Exec/sandbox-path.test.hs
@@ -0,0 +1,8 @@
+import Test.Cabal.Prelude
+main = cabalTest $ do
+    withSandbox $ do
+        fails $ cabal "exec" ["my-executable"]
+        cabal "install" []
+        -- Execute indirectly via bash to ensure that we go through $PATH
+        cabal' "exec" ["sh", "--", "-c", "my-executable"]
+            >>= assertOutputContains "This is my-executable"