diff --git a/packages/wf-multi-area-model/package.py b/packages/wf-multi-area-model/package.py
index 01ffda36e18216b0037e7d4fc043830fb8cbd2b7..3485e4a14b4c8cd05fa3621baec42ae890332c86 100644
--- a/packages/wf-multi-area-model/package.py
+++ b/packages/wf-multi-area-model/package.py
@@ -28,12 +28,26 @@ class WfMultiAreaModel(Package):
     depends_on("py-notebook", type="test")
 
     def install(self, spec, prefix):
-        # sanity_check_prefix requires something in the install directory
-        mkdirp(prefix + "/.spack_test_results")
+        install_tree(".", join_path(prefix, "notebooks"))
+
+    def _run_notebooks(self, output_dir):
+        mkdirp(output_dir)
+        # execute notebook and save
+        jupyter = Executable("jupyter")
+        jupyter("nbconvert",
+            "--ExecutePreprocessor.kernel_name=python3",
+            "--execute",
+            "--allow-errors",
+            "--to",
+            "notebook",
+            join_path(self.prefix, "notebooks", "multi-area-model.ipynb"),
+            "--output",
+            join_path(output_dir, "multi-area-model.ipynb"))
 
     @run_after("install")
     @on_package_attributes(run_tests=True)
     def installcheck(self):
-        # execute notebook and save
-        jupyter = Executable("jupyter")
-        jupyter("nbconvert", "--ExecutePreprocessor.kernel_name=python3", "--execute", "--allow-errors", "--to", "notebook", "multi-area-model.ipynb", "--output", prefix+"/.spack_test_results/multi-area-model.ipynb")
+        self._run_notebooks(join_path(self.prefix, ".spack_test_results"))
+
+    def test(self):
+        self._run_notebooks(join_path(self.test_suite.stage, self.spec.format("out-{name}-{version}-{hash:7}")))