diff --git a/CHANGES.md b/CHANGES.md
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,3 +1,8 @@
+0.2.2.5 (7 April 2014)
+----------------------
+
+  - switch to tasty framework for tests, and allow `QuickCheck-2.7`
+
 0.2.2.4 (20 March 2014)
 ----------------------
 
diff --git a/diagrams-haddock.cabal b/diagrams-haddock.cabal
--- a/diagrams-haddock.cabal
+++ b/diagrams-haddock.cabal
@@ -1,5 +1,5 @@
 name:                diagrams-haddock
-version:             0.2.2.4
+version:             0.2.2.5
 synopsis:            Preprocessor for embedding diagrams in Haddock documentation
 description:         diagrams-haddock is a tool for compiling embedded inline
                      diagrams code in Haddock documentation, for an
@@ -76,9 +76,9 @@
   main-is:             Tests.hs
   build-depends:       base,
                        containers >= 0.4 && < 0.6,
-                       QuickCheck >= 2.4 && < 2.7,
-                       test-framework >= 0.8 && < 0.9,
-                       test-framework-quickcheck2 >= 0.3 && < 0.4,
+                       QuickCheck >= 2.4 && < 2.8,
+                       tasty >= 0.8 && < 0.9,
+                       tasty-quickcheck >= 0.8 && < 0.9,
                        parsec >= 3,
                        haskell-src-exts >= 1.14 && < 1.15,
                        lens >= 3.8 && < 4.2,
diff --git a/test/Tests.hs b/test/Tests.hs
--- a/test/Tests.hs
+++ b/test/Tests.hs
@@ -3,19 +3,33 @@
 module Main where
 
 import           Control.Applicative
-import           Control.Lens                         (view)
-import           Data.Either                          (rights)
-import           Data.List                            ((\\))
-import qualified Data.Map                             as M
-import qualified Data.Set                             as S
+import           Control.Lens                    (view)
+import           Data.Either                     (rights)
+import           Data.List                       ((\\))
+import qualified Data.Map                        as M
+import qualified Data.Set                        as S
 import           Language.Haskell.Exts.Annotated
-import           Test.Framework                       (Test, defaultMain)
-import           Test.Framework.Providers.QuickCheck2 (testProperty)
 import           Test.QuickCheck
-import qualified Text.Parsec                          as P
+import           Test.Tasty
+import           Test.Tasty.QuickCheck           as QC
+import qualified Text.Parsec                     as P
 
 import           Diagrams.Haddock
 
+main :: IO ()
+main = defaultMain tests
+
+tests :: TestTree
+tests = testGroup "Properties"
+  [ QC.testProperty "DiagramURL display/parse"      prop_parseDisplay
+  , QC.testProperty "CommentWithURLs display/parse" prop_parseDisplayMany
+  , QC.testProperty "parseDiagramURLs succeeds"     prop_parseDiagramURLs_succeeds
+
+  , QC.testProperty "transitiveClosure subset"         prop_tc_subset
+  , QC.testProperty "transitiveClosure excluded bindings" prop_tc_excluded
+  , QC.testProperty "transitiveClosure included bindings" prop_tc_included
+  ]
+
 newtype EString = EString { getEString :: String }
   deriving (Eq, Show)
 instance Arbitrary EString where
@@ -101,16 +115,4 @@
   where included       = transitiveClosure s blocks
         includedIdents = S.insert s $ S.unions (map (view codeBlockIdents) included)
 
-tests :: [Test]
-tests =
-  [ testProperty "DiagramURL display/parse"      prop_parseDisplay
-  , testProperty "CommentWithURLs display/parse" prop_parseDisplayMany
-  , testProperty "parseDiagramURLs succeeds"     prop_parseDiagramURLs_succeeds
 
-  , testProperty "transitiveClosure subset"         prop_tc_subset
-  , testProperty "transitiveClosure excluded bindings" prop_tc_excluded
-  , testProperty "transitiveClosure included bindings" prop_tc_included
-  ]
-
-main :: IO ()
-main = defaultMain tests
