diff --git a/Makefile b/Makefile
index a2a79ca5773f4bbd10bdb61f62d531620797cc53..3baf42ed9bc9643411e12dd4bf77e1bc984b119c 100644
--- a/Makefile
+++ b/Makefile
@@ -65,6 +65,7 @@ test_minigeth:
 	minigeth/go-ethereum 13303075
 
 test_contracts:
+	$(call clear_cache)
 	npx hardhat test
 
 test: test_challenge test_mipsevm test_minigeth
diff --git a/test/challenge_test.js b/test/challenge_test.js
index 59f31472b4a33a2dbfcedbcf5d939d769ef48fad..6539d47fc0cc4568032d7c062539e36051451771 100644
--- a/test/challenge_test.js
+++ b/test/challenge_test.js
@@ -2,6 +2,8 @@ const { expect } = require("chai")
 const fs = require("fs")
 const { deploy, getTrieNodesForCall } = require("../scripts/lib")
 
+// This test needs preimages to run correctly.
+// It is skipped when running `make test_contracts`, but can be run with `make test_challenge`.
 describe("Challenge contract", function () {
   if (!fs.existsSync("/tmp/cannon/golden.json")) {
     console.log("golden file doesn't exist, skipping test")