diff --git a/src/test/java/gov/usgs/earthquake/nshmp/www/hazard/HazardServiceUtils.java b/src/test/java/gov/usgs/earthquake/nshmp/www/hazard/HazardServiceUtils.java
index 51256e419b637bcb8e57f42d339bf503ba4dcf27..0a9d454007e2b28d94d2f24fec70343903bffd1a 100644
--- a/src/test/java/gov/usgs/earthquake/nshmp/www/hazard/HazardServiceUtils.java
+++ b/src/test/java/gov/usgs/earthquake/nshmp/www/hazard/HazardServiceUtils.java
@@ -11,14 +11,25 @@ import gov.usgs.earthquake.nshmp.NamedLocation;
 import gov.usgs.earthquake.nshmp.calc.Hazard;
 import gov.usgs.earthquake.nshmp.data.XySequence;
 import gov.usgs.earthquake.nshmp.gmm.Imt;
+import gov.usgs.earthquake.nshmp.www.Application;
 import gov.usgs.earthquake.nshmp.www.hazard.HazardService.Request;
-
+import io.micronaut.context.ApplicationContext;
 import io.micronaut.http.HttpRequest;
+import io.micronaut.runtime.Micronaut;
+import io.micronaut.test.extensions.junit5.annotation.MicronautTest;
 
+@MicronautTest
 public class HazardServiceUtils {
 
-  public static Map<String, XySequence> generateActual(NamedLocation loc, Set<Imt> imts)
+  public static Map<String, XySequence> generateActual(
+      NamedLocation loc,
+      Set<Imt> imts,
+      String model)
       throws InterruptedException, ExecutionException {
+    ApplicationContext context = Micronaut.build("--model=nshms/nshm-" + model)
+        .mainClass(Application.class)
+        .start();
+
     Request request = new Request(
         HttpRequest.GET(""),
         loc.location().longitude,
@@ -30,6 +41,8 @@ public class HazardServiceUtils {
 
     Hazard hazard = HazardService.calcHazard(request);
 
+    context.stop();
+
     Map<String, XySequence> xyMap = hazard.curves().entrySet().stream()
         .collect(Collectors.toMap(
             e -> e.getKey().name(),