You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by va...@apache.org on 2022/09/28 22:47:40 UTC

[couchdb] branch main updated: Clean up unit tests

This is an automated email from the ASF dual-hosted git repository.

vatamane pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/couchdb.git


The following commit(s) were added to refs/heads/main by this push:
     new 1407a51ee Clean up unit tests
1407a51ee is described below

commit 1407a51ee6898c39eeb551a9c3cd9d69751e7baa
Author: Nick Vatamaniuc <va...@gmail.com>
AuthorDate: Wed Sep 28 14:18:42 2022 -0400

    Clean up unit tests
    
     * Centralize the definition of TDEF* macros
    
     * Don't include eunit bits in the fabric at the top, instead use TEST specific
       sections
    
     * Remove some unused include files, as reported by erlang_ls + emacs
---
 rebar.config.script                                |   2 +-
 .../eunit/chttpd_auth_hash_algorithms_tests.erl    |   1 -
 src/chttpd/test/eunit/chttpd_csp_tests.erl         |   6 -
 src/chttpd/test/eunit/chttpd_dbs_info_test.erl     |   1 -
 src/chttpd/test/eunit/chttpd_revs_diff_tests.erl   |   2 -
 src/chttpd/test/eunit/chttpd_session_tests.erl     |   1 -
 src/chttpd/test/eunit/chttpd_test.hrl              |  35 ----
 src/chttpd/test/eunit/chttpd_util_test.erl         |   1 -
 src/couch/include/couch_eunit.hrl                  |  24 +++
 src/couch/src/test_util.erl                        |  10 +-
 src/couch/test/eunit/couch_flags_tests.erl         |   4 +-
 .../test/eunit/couchdb_open_doc_revs_tests.erl     |   2 -
 src/couch/test/eunit/test_web.erl                  |   4 +-
 src/couch_epi/test/eunit/couch_epi_tests.erl       |   4 +-
 .../test/eunit/couch_prometheus_util_tests.erl     |   9 +-
 src/couch_replicator/src/couch_replicator_ids.erl  |   3 +-
 .../src/couch_replicator_share.erl                 |   1 -
 .../couch_replicator_attachments_too_large.erl     |   1 -
 .../test/eunit/couch_replicator_bulk_get_tests.erl |   1 -
 .../test/eunit/couch_replicator_compact_tests.erl  |   1 -
 .../eunit/couch_replicator_connection_tests.erl    |   1 -
 ...replicator_create_target_with_options_tests.erl |   1 -
 .../couch_replicator_error_reporting_tests.erl     |   1 -
 .../test/eunit/couch_replicator_filtered_tests.erl |   1 -
 .../eunit/couch_replicator_httpc_pool_tests.erl    |   1 -
 .../eunit/couch_replicator_id_too_long_tests.erl   |   1 -
 .../eunit/couch_replicator_large_atts_tests.erl    |   1 -
 .../eunit/couch_replicator_many_leaves_tests.erl   |   1 -
 .../eunit/couch_replicator_missing_stubs_tests.erl |   1 -
 .../test/eunit/couch_replicator_proxy_tests.erl    |   1 -
 .../eunit/couch_replicator_rate_limiter_tests.erl  |   1 -
 ...ch_replicator_retain_stats_between_job_runs.erl |   1 -
 .../eunit/couch_replicator_revs_diff_tests.erl     |   1 -
 .../test/eunit/couch_replicator_selector_tests.erl |   1 -
 ...ch_replicator_small_max_request_size_target.erl |   1 -
 .../test/eunit/couch_replicator_test.hrl           |  35 ----
 .../test/eunit/couch_replicator_test_helper.erl    |  14 +-
 .../couch_replicator_use_checkpoints_tests.erl     |   1 -
 .../test/eunit/ddoc_cache_basic_test.erl           |  18 +-
 .../test/eunit/ddoc_cache_disabled_test.erl        |  10 +-
 .../test/eunit/ddoc_cache_entry_test.erl           |  19 +-
 .../test/eunit/ddoc_cache_eviction_test.erl        |   9 +-
 src/ddoc_cache/test/eunit/ddoc_cache_lru_test.erl  |  14 +-
 .../test/eunit/ddoc_cache_open_error_test.erl      |   7 +-
 src/ddoc_cache/test/eunit/ddoc_cache_open_test.erl |  15 +-
 .../test/eunit/ddoc_cache_refresh_test.erl         |  14 +-
 .../test/eunit/ddoc_cache_remove_test.erl          |  14 +-
 src/ddoc_cache/test/eunit/ddoc_cache_tutil.erl     |   6 -
 src/dreyfus/test/dreyfus_purge_test.erl            |  11 +-
 src/fabric/include/fabric.hrl                      |   2 -
 src/fabric/src/fabric_doc_open_revs.erl            |   4 +-
 src/fabric/src/fabric_ring.erl                     |   6 +-
 src/fabric/src/fabric_view.erl                     |   6 +
 src/fabric/src/fabric_view_changes.erl             |  40 ++--
 src/fabric/test/eunit/fabric_db_create_tests.erl   |   9 +-
 src/fabric/test/eunit/fabric_db_info_tests.erl     |  10 +-
 src/fabric/test/eunit/fabric_db_uuids_tests.erl    |   9 +-
 .../test/eunit/fabric_moved_shards_seq_tests.erl   |   9 +-
 src/fabric/test/eunit/fabric_rpc_purge_tests.erl   |  49 ++---
 src/fabric/test/eunit/fabric_rpc_tests.erl         |  33 ++--
 .../test/eunit/global_changes_hooks_tests.erl      |   4 +-
 src/mem3/src/mem3_rep.erl                          | 213 ++++++++++-----------
 src/mem3/test/eunit/mem3_bdu_test.erl              |   2 -
 src/mem3/test/eunit/mem3_distribution_test.erl     |   1 -
 64 files changed, 286 insertions(+), 426 deletions(-)

diff --git a/rebar.config.script b/rebar.config.script
index 53e396597..bfae0c85f 100644
--- a/rebar.config.script
+++ b/rebar.config.script
@@ -141,7 +141,7 @@ SubDirs = [
 
 DepDescs = [
 %% Independent Apps
-{config,           "config",           {tag, "2.2.0"}},
+{config,           "config",           {tag, "2.2.1"}},
 {b64url,           "b64url",           {tag, "1.0.3"}},
 {ets_lru,          "ets-lru",          {tag, "1.1.0"}},
 {khash,            "khash",            {tag, "1.1.0"}},
diff --git a/src/chttpd/test/eunit/chttpd_auth_hash_algorithms_tests.erl b/src/chttpd/test/eunit/chttpd_auth_hash_algorithms_tests.erl
index c78427d24..52f4f9e8b 100644
--- a/src/chttpd/test/eunit/chttpd_auth_hash_algorithms_tests.erl
+++ b/src/chttpd/test/eunit/chttpd_auth_hash_algorithms_tests.erl
@@ -14,7 +14,6 @@
 -include_lib("eunit/include/eunit.hrl").
 -include_lib("couch/include/couch_eunit.hrl").
 -include_lib("couch/include/couch_db.hrl").
--include_lib("chttpd/test/eunit/chttpd_test.hrl").
 
 -define(ADM_USER, "adm_user").
 -define(ADM_PASS, "adm_pass").
diff --git a/src/chttpd/test/eunit/chttpd_csp_tests.erl b/src/chttpd/test/eunit/chttpd_csp_tests.erl
index c4a9e930e..09a06da04 100644
--- a/src/chttpd/test/eunit/chttpd_csp_tests.erl
+++ b/src/chttpd/test/eunit/chttpd_csp_tests.erl
@@ -31,12 +31,6 @@
 -define(SHOW1, "show1").
 -define(LIST1, "list1").
 -define(SALT, <<"01234567890123456789012345678901">>).
--define(TDEF(Name), {atom_to_list(Name), fun Name/1}).
--define(TDEF(Name, Timeout), {atom_to_list(Name), Timeout, fun Name/1}).
--define(TDEF_FE(Name), fun(Arg) -> {atom_to_list(Name), ?_test(Name(Arg))} end).
--define(TDEF_FE(Name, Timeout), fun(Arg) ->
-    {atom_to_list(Name), {timeout, Timeout, ?_test(Name(Arg))}}
-end).
 
 csp_test_() ->
     {
diff --git a/src/chttpd/test/eunit/chttpd_dbs_info_test.erl b/src/chttpd/test/eunit/chttpd_dbs_info_test.erl
index cb386d63f..ee4b2687f 100644
--- a/src/chttpd/test/eunit/chttpd_dbs_info_test.erl
+++ b/src/chttpd/test/eunit/chttpd_dbs_info_test.erl
@@ -14,7 +14,6 @@
 
 -include_lib("couch/include/couch_eunit.hrl").
 -include_lib("couch/include/couch_db.hrl").
--include("chttpd_test.hrl").
 
 -define(USER, "chttpd_db_test_admin").
 -define(PASS, "pass").
diff --git a/src/chttpd/test/eunit/chttpd_revs_diff_tests.erl b/src/chttpd/test/eunit/chttpd_revs_diff_tests.erl
index 7cdb81fa2..910c541cc 100644
--- a/src/chttpd/test/eunit/chttpd_revs_diff_tests.erl
+++ b/src/chttpd/test/eunit/chttpd_revs_diff_tests.erl
@@ -15,8 +15,6 @@
 -include_lib("couch/include/couch_eunit.hrl").
 -include_lib("couch/include/couch_db.hrl").
 
--define(TDEF_FE(Name), fun(Arg) -> {atom_to_list(Name), ?_test(Name(Arg))} end).
-
 -define(USER, "chttpd_revs_diff_test_admin").
 -define(PASS, "pass").
 -define(AUTH, {basic_auth, {?USER, ?PASS}}).
diff --git a/src/chttpd/test/eunit/chttpd_session_tests.erl b/src/chttpd/test/eunit/chttpd_session_tests.erl
index e00406fe1..0707090b0 100644
--- a/src/chttpd/test/eunit/chttpd_session_tests.erl
+++ b/src/chttpd/test/eunit/chttpd_session_tests.erl
@@ -13,7 +13,6 @@
 -module(chttpd_session_tests).
 
 -include_lib("couch/include/couch_eunit.hrl").
--include("chttpd_test.hrl").
 
 -define(USER, "chttpd_test_admin").
 -define(PASS, "pass").
diff --git a/src/chttpd/test/eunit/chttpd_test.hrl b/src/chttpd/test/eunit/chttpd_test.hrl
deleted file mode 100644
index 6db97ec2b..000000000
--- a/src/chttpd/test/eunit/chttpd_test.hrl
+++ /dev/null
@@ -1,35 +0,0 @@
-% Licensed under the Apache License, Version 2.0 (the "License"); you may not
-% use this file except in compliance with the License. You may obtain a copy of
-% the License at
-%
-%   http://www.apache.org/licenses/LICENSE-2.0
-%
-% Unless required by applicable law or agreed to in writing, software
-% distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-% WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-% License for the specific language governing permissions and limitations under
-% the License.
-
-
-% Borrowed from fabric2_test.hrl
-
-% Some test modules do not use with, so squash the unused fun compiler warning
--compile([{nowarn_unused_function, [{with, 1}]}]).
-
-
--define(TDEF(Name), {atom_to_list(Name), fun Name/1}).
--define(TDEF(Name, Timeout), {atom_to_list(Name), Timeout, fun Name/1}).
-
--define(TDEF_FE(Name), fun(Arg) -> {atom_to_list(Name), ?_test(Name(Arg))} end).
--define(TDEF_FE(Name, Timeout), fun(Arg) -> {atom_to_list(Name), {timeout, Timeout, ?_test(Name(Arg))}} end).
-
-
-with(Tests) ->
-    fun(ArgsTuple) ->
-        lists:map(fun
-            ({Name, Fun}) ->
-                {Name, ?_test(Fun(ArgsTuple))};
-            ({Name, Timeout, Fun}) ->
-                {Name, {timeout, Timeout, ?_test(Fun(ArgsTuple))}}
-        end, Tests)
-    end.
diff --git a/src/chttpd/test/eunit/chttpd_util_test.erl b/src/chttpd/test/eunit/chttpd_util_test.erl
index 69fb60156..c381dac6e 100644
--- a/src/chttpd/test/eunit/chttpd_util_test.erl
+++ b/src/chttpd/test/eunit/chttpd_util_test.erl
@@ -13,7 +13,6 @@
 -module(chttpd_util_test).
 
 -include_lib("couch/include/couch_eunit.hrl").
--include("chttpd_test.hrl").
 
 setup() ->
     ok = lists:foreach(
diff --git a/src/couch/include/couch_eunit.hrl b/src/couch/include/couch_eunit.hrl
index 188524893..3ffa0506f 100644
--- a/src/couch/include/couch_eunit.hrl
+++ b/src/couch/include/couch_eunit.hrl
@@ -12,6 +12,9 @@
 
 -include_lib("eunit/include/eunit.hrl").
 
+% Some test modules do not use with, so squash the unused fun compiler warning
+-compile([{nowarn_unused_function, [{with, 1}]}]).
+
 -define(BUILDDIR,
     fun() ->
         case os:getenv("BUILDDIR") of
@@ -75,3 +78,24 @@
 	  end)(Expect))).
 -endif.
 -define(_assertEquiv(Expect, Expr), ?_test(?assertEquiv(Expect, Expr))).
+
+
+-ifndef(TDEF).
+-define(TDEF(Name), {atom_to_list(Name), fun Name/1}).
+-define(TDEF(Name, Timeout), {atom_to_list(Name), Timeout, fun Name/1}).
+-endif.
+
+-ifndef(TDEF_FE).
+-define(TDEF_FE(Name), fun(Arg) -> {atom_to_list(Name), ?_test(Name(Arg))} end).
+-define(TDEF_FE(Name, Timeout), fun(Arg) -> {atom_to_list(Name), {timeout, Timeout, ?_test(Name(Arg))}} end).
+-endif.
+
+with(Tests) ->
+    fun(ArgsTuple) ->
+        lists:map(fun
+            ({Name, Fun}) ->
+                {Name, ?_test(Fun(ArgsTuple))};
+            ({Name, Timeout, Fun}) ->
+                {Name, {timeout, Timeout, ?_test(Fun(ArgsTuple))}}
+        end, Tests)
+    end.
diff --git a/src/couch/src/test_util.erl b/src/couch/src/test_util.erl
index 165a5be2f..345359794 100644
--- a/src/couch/src/test_util.erl
+++ b/src/couch/src/test_util.erl
@@ -12,11 +12,6 @@
 
 -module(test_util).
 
--include_lib("couch/include/couch_eunit.hrl").
--include_lib("couch/include/couch_db.hrl").
--include("couch_db_int.hrl").
--include("couch_bt_engine.hrl").
-
 -export([init_code_path/0]).
 -export([source_file/1, build_file/1]).
 -export([revtree_generate/4, revtree_get_revs/1, random_rev/0]).
@@ -42,6 +37,11 @@
 
 -export([shuffle/1]).
 
+-include_lib("couch/include/couch_eunit.hrl").
+-include_lib("couch/include/couch_db.hrl").
+-include("couch_db_int.hrl").
+-include("couch_bt_engine.hrl").
+
 -record(test_context, {mocked = [], started = [], module}).
 
 -define(DEFAULT_APPS, [inets, ibrowse, ssl, config, couch_epi, couch_event, couch]).
diff --git a/src/couch/test/eunit/couch_flags_tests.erl b/src/couch/test/eunit/couch_flags_tests.erl
index e3635e9f2..57775eac4 100644
--- a/src/couch/test/eunit/couch_flags_tests.erl
+++ b/src/couch/test/eunit/couch_flags_tests.erl
@@ -12,8 +12,6 @@
 
 -module(couch_flags_tests).
 
--include_lib("couch/include/couch_eunit.hrl").
-
 %% couch_epi_plugin behaviour callbacks
 -export([
     app/0,
@@ -29,6 +27,8 @@
     rules/0
 ]).
 
+-include_lib("couch/include/couch_eunit.hrl").
+
 app() ->
     test_app.
 
diff --git a/src/couch/test/eunit/couchdb_open_doc_revs_tests.erl b/src/couch/test/eunit/couchdb_open_doc_revs_tests.erl
index 78d9c3182..07209cd73 100644
--- a/src/couch/test/eunit/couchdb_open_doc_revs_tests.erl
+++ b/src/couch/test/eunit/couchdb_open_doc_revs_tests.erl
@@ -15,8 +15,6 @@
 -include_lib("couch/include/couch_eunit.hrl").
 -include_lib("couch/include/couch_db.hrl").
 
--define(TDEF_FE(Name), fun(Arg) -> {atom_to_list(Name), ?_test(Name(Arg))} end).
-
 open_doc_revs_test_() ->
     {
         foreach,
diff --git a/src/couch/test/eunit/test_web.erl b/src/couch/test/eunit/test_web.erl
index 8998dad52..25fe7092b 100644
--- a/src/couch/test/eunit/test_web.erl
+++ b/src/couch/test/eunit/test_web.erl
@@ -15,12 +15,12 @@
 
 -compile(tuple_calls).
 
--include_lib("couch/include/couch_eunit.hrl").
-
 -export([start_link/0, stop/0, loop/1, get_port/0, set_assert/1, check_last/0]).
 -export([init/1, terminate/2, code_change/3]).
 -export([handle_call/3, handle_cast/2, handle_info/2]).
 
+-include_lib("couch/include/couch_eunit.hrl").
+
 -define(SERVER, test_web_server).
 -define(HANDLER, test_web_handler).
 -define(DELAY, 500).
diff --git a/src/couch_epi/test/eunit/couch_epi_tests.erl b/src/couch_epi/test/eunit/couch_epi_tests.erl
index 796af1346..3c3503345 100644
--- a/src/couch_epi/test/eunit/couch_epi_tests.erl
+++ b/src/couch_epi/test/eunit/couch_epi_tests.erl
@@ -12,13 +12,13 @@
 
 -module(couch_epi_tests).
 
+-export([notify_cb/4, save/3, get/2]).
+
 -include_lib("couch/include/couch_eunit.hrl").
 
 -define(DATA_FILE1, ?ABS_PATH("test/eunit/fixtures/app_data1.cfg")).
 -define(DATA_FILE2, ?ABS_PATH("test/eunit/fixtures/app_data2.cfg")).
 
--export([notify_cb/4, save/3, get/2]).
-
 -record(ctx, {file, handle, pid, kv, key, modules = []}).
 
 -define(TIMEOUT, 5000).
diff --git a/src/couch_prometheus/test/eunit/couch_prometheus_util_tests.erl b/src/couch_prometheus/test/eunit/couch_prometheus_util_tests.erl
index 65828db62..547741c5f 100644
--- a/src/couch_prometheus/test/eunit/couch_prometheus_util_tests.erl
+++ b/src/couch_prometheus/test/eunit/couch_prometheus_util_tests.erl
@@ -14,11 +14,6 @@
 
 -include_lib("couch/include/couch_eunit.hrl").
 
--import(couch_prometheus_util, [
-    to_prom/3,
-    to_prom_summary/2
-]).
-
 couch_prometheus_util_test_() ->
     [
         ?_assertEqual(
@@ -67,9 +62,9 @@ couch_prometheus_util_test_() ->
     ].
 
 test_to_prom_output(Metric, Type, Val) ->
-    Out = to_prom(Metric, Type, Val),
+    Out = couch_prometheus_util:to_prom(Metric, Type, Val),
     lists:nth(2, Out).
 
 test_to_prom_sum_output(Metric, Info) ->
-    Out = to_prom_summary(Metric, Info),
+    Out = couch_prometheus_util:to_prom_summary(Metric, Info),
     lists:nth(3, Out).
diff --git a/src/couch_replicator/src/couch_replicator_ids.erl b/src/couch_replicator/src/couch_replicator_ids.erl
index 9f4581afc..939070b95 100644
--- a/src/couch_replicator/src/couch_replicator_ids.erl
+++ b/src/couch_replicator/src/couch_replicator_ids.erl
@@ -178,8 +178,7 @@ get_non_default_port(_Schema, Port) ->
 
 -ifdef(TEST).
 
--include_lib("eunit/include/eunit.hrl").
--include_lib("couch_replicator/test/eunit/couch_replicator_test.hrl").
+-include_lib("couch/include/couch_eunit.hrl").
 
 winning_revs_id_test_() ->
     {
diff --git a/src/couch_replicator/src/couch_replicator_share.erl b/src/couch_replicator/src/couch_replicator_share.erl
index 8c9fa029a..fb7b2fcfc 100644
--- a/src/couch_replicator/src/couch_replicator_share.erl
+++ b/src/couch_replicator/src/couch_replicator_share.erl
@@ -333,7 +333,6 @@ float_val(Str, Default) when is_list(Str) ->
 
 -include_lib("eunit/include/eunit.hrl").
 -include_lib("couch/include/couch_eunit.hrl").
--include_lib("couch_replicator/test/eunit/couch_replicator_test.hrl").
 
 -define(DB1, <<"db1">>).
 -define(DB2, <<"db2">>).
diff --git a/src/couch_replicator/test/eunit/couch_replicator_attachments_too_large.erl b/src/couch_replicator/test/eunit/couch_replicator_attachments_too_large.erl
index 4c4ff9c14..0b4360378 100644
--- a/src/couch_replicator/test/eunit/couch_replicator_attachments_too_large.erl
+++ b/src/couch_replicator/test/eunit/couch_replicator_attachments_too_large.erl
@@ -14,7 +14,6 @@
 
 -include_lib("couch/include/couch_eunit.hrl").
 -include_lib("couch/include/couch_db.hrl").
--include("couch_replicator_test.hrl").
 
 attachment_too_large_replication_test_() ->
     {
diff --git a/src/couch_replicator/test/eunit/couch_replicator_bulk_get_tests.erl b/src/couch_replicator/test/eunit/couch_replicator_bulk_get_tests.erl
index 52c623c85..2ecd0f4ee 100644
--- a/src/couch_replicator/test/eunit/couch_replicator_bulk_get_tests.erl
+++ b/src/couch_replicator/test/eunit/couch_replicator_bulk_get_tests.erl
@@ -14,7 +14,6 @@
 
 -include_lib("couch/include/couch_eunit.hrl").
 -include_lib("couch/include/couch_db.hrl").
--include("couch_replicator_test.hrl").
 
 -define(DOC_COUNT, 10).
 
diff --git a/src/couch_replicator/test/eunit/couch_replicator_compact_tests.erl b/src/couch_replicator/test/eunit/couch_replicator_compact_tests.erl
index 373bd02ba..2d5ef96b1 100644
--- a/src/couch_replicator/test/eunit/couch_replicator_compact_tests.erl
+++ b/src/couch_replicator/test/eunit/couch_replicator_compact_tests.erl
@@ -15,7 +15,6 @@
 -include_lib("couch/include/couch_eunit.hrl").
 -include_lib("couch/include/couch_db.hrl").
 -include_lib("couch_replicator/src/couch_replicator.hrl").
--include("couch_replicator_test.hrl").
 
 -define(ATTFILE, filename:join([?FIXTURESDIR, "logo.png"])).
 -define(DELAY, 500).
diff --git a/src/couch_replicator/test/eunit/couch_replicator_connection_tests.erl b/src/couch_replicator/test/eunit/couch_replicator_connection_tests.erl
index e8c90d02a..aa75bd746 100644
--- a/src/couch_replicator/test/eunit/couch_replicator_connection_tests.erl
+++ b/src/couch_replicator/test/eunit/couch_replicator_connection_tests.erl
@@ -13,7 +13,6 @@
 -module(couch_replicator_connection_tests).
 
 -include_lib("couch/include/couch_eunit.hrl").
--include("couch_replicator_test.hrl").
 
 setup() ->
     Host = config:get("httpd", "bind_address", "127.0.0.1"),
diff --git a/src/couch_replicator/test/eunit/couch_replicator_create_target_with_options_tests.erl b/src/couch_replicator/test/eunit/couch_replicator_create_target_with_options_tests.erl
index fabb6480e..b6e361c8f 100644
--- a/src/couch_replicator/test/eunit/couch_replicator_create_target_with_options_tests.erl
+++ b/src/couch_replicator/test/eunit/couch_replicator_create_target_with_options_tests.erl
@@ -14,7 +14,6 @@
 
 -include_lib("couch/include/couch_eunit.hrl").
 -include_lib("couch/include/couch_db.hrl").
--include("couch_replicator_test.hrl").
 
 create_target_with_options_replication_test_() ->
     {
diff --git a/src/couch_replicator/test/eunit/couch_replicator_error_reporting_tests.erl b/src/couch_replicator/test/eunit/couch_replicator_error_reporting_tests.erl
index 3f454b002..6bdb4ecb2 100644
--- a/src/couch_replicator/test/eunit/couch_replicator_error_reporting_tests.erl
+++ b/src/couch_replicator/test/eunit/couch_replicator_error_reporting_tests.erl
@@ -15,7 +15,6 @@
 -include_lib("couch/include/couch_eunit.hrl").
 -include_lib("couch/include/couch_db.hrl").
 -include_lib("couch_replicator/src/couch_replicator.hrl").
--include("couch_replicator_test.hrl").
 
 error_reporting_test_() ->
     {
diff --git a/src/couch_replicator/test/eunit/couch_replicator_filtered_tests.erl b/src/couch_replicator/test/eunit/couch_replicator_filtered_tests.erl
index 267c4fab6..d99062b2b 100644
--- a/src/couch_replicator/test/eunit/couch_replicator_filtered_tests.erl
+++ b/src/couch_replicator/test/eunit/couch_replicator_filtered_tests.erl
@@ -14,7 +14,6 @@
 
 -include_lib("couch/include/couch_eunit.hrl").
 -include_lib("couch/include/couch_db.hrl").
--include("couch_replicator_test.hrl").
 
 -define(DDOC,
     {[
diff --git a/src/couch_replicator/test/eunit/couch_replicator_httpc_pool_tests.erl b/src/couch_replicator/test/eunit/couch_replicator_httpc_pool_tests.erl
index 5fce5e886..512d02037 100644
--- a/src/couch_replicator/test/eunit/couch_replicator_httpc_pool_tests.erl
+++ b/src/couch_replicator/test/eunit/couch_replicator_httpc_pool_tests.erl
@@ -13,7 +13,6 @@
 -module(couch_replicator_httpc_pool_tests).
 
 -include_lib("couch/include/couch_eunit.hrl").
--include("couch_replicator_test.hrl").
 
 -define(TIMEOUT, 1000).
 
diff --git a/src/couch_replicator/test/eunit/couch_replicator_id_too_long_tests.erl b/src/couch_replicator/test/eunit/couch_replicator_id_too_long_tests.erl
index 08454bd71..4d2095768 100644
--- a/src/couch_replicator/test/eunit/couch_replicator_id_too_long_tests.erl
+++ b/src/couch_replicator/test/eunit/couch_replicator_id_too_long_tests.erl
@@ -14,7 +14,6 @@
 
 -include_lib("couch/include/couch_eunit.hrl").
 -include_lib("couch/include/couch_db.hrl").
--include("couch_replicator_test.hrl").
 
 id_too_long_replication_test_() ->
     {
diff --git a/src/couch_replicator/test/eunit/couch_replicator_large_atts_tests.erl b/src/couch_replicator/test/eunit/couch_replicator_large_atts_tests.erl
index 8190c7205..e60e3be5d 100644
--- a/src/couch_replicator/test/eunit/couch_replicator_large_atts_tests.erl
+++ b/src/couch_replicator/test/eunit/couch_replicator_large_atts_tests.erl
@@ -14,7 +14,6 @@
 
 -include_lib("couch/include/couch_eunit.hrl").
 -include_lib("couch/include/couch_db.hrl").
--include("couch_replicator_test.hrl").
 
 -define(ATT_SIZE_1, 2 * 1024 * 1024).
 -define(ATT_SIZE_2, round(6.6 * 1024 * 1024)).
diff --git a/src/couch_replicator/test/eunit/couch_replicator_many_leaves_tests.erl b/src/couch_replicator/test/eunit/couch_replicator_many_leaves_tests.erl
index aa5752650..2ede0d47e 100644
--- a/src/couch_replicator/test/eunit/couch_replicator_many_leaves_tests.erl
+++ b/src/couch_replicator/test/eunit/couch_replicator_many_leaves_tests.erl
@@ -14,7 +14,6 @@
 
 -include_lib("couch/include/couch_eunit.hrl").
 -include_lib("couch/include/couch_db.hrl").
--include("couch_replicator_test.hrl").
 
 -define(DOCS_CONFLICTS, [
     {<<"doc1">>, 10},
diff --git a/src/couch_replicator/test/eunit/couch_replicator_missing_stubs_tests.erl b/src/couch_replicator/test/eunit/couch_replicator_missing_stubs_tests.erl
index b0e205729..551de3f4c 100644
--- a/src/couch_replicator/test/eunit/couch_replicator_missing_stubs_tests.erl
+++ b/src/couch_replicator/test/eunit/couch_replicator_missing_stubs_tests.erl
@@ -14,7 +14,6 @@
 
 -include_lib("couch/include/couch_eunit.hrl").
 -include_lib("couch/include/couch_db.hrl").
--include("couch_replicator_test.hrl").
 
 -define(REVS_LIMIT, 3).
 -define(TIMEOUT_EUNIT, 30).
diff --git a/src/couch_replicator/test/eunit/couch_replicator_proxy_tests.erl b/src/couch_replicator/test/eunit/couch_replicator_proxy_tests.erl
index 184d81aaf..3468cda73 100644
--- a/src/couch_replicator/test/eunit/couch_replicator_proxy_tests.erl
+++ b/src/couch_replicator/test/eunit/couch_replicator_proxy_tests.erl
@@ -15,7 +15,6 @@
 -include_lib("couch/include/couch_eunit.hrl").
 -include_lib("couch_replicator/src/couch_replicator.hrl").
 -include_lib("couch_replicator/include/couch_replicator_api_wrap.hrl").
--include("couch_replicator_test.hrl").
 
 setup() ->
     ok.
diff --git a/src/couch_replicator/test/eunit/couch_replicator_rate_limiter_tests.erl b/src/couch_replicator/test/eunit/couch_replicator_rate_limiter_tests.erl
index 0b7c48b62..acb931b9b 100644
--- a/src/couch_replicator/test/eunit/couch_replicator_rate_limiter_tests.erl
+++ b/src/couch_replicator/test/eunit/couch_replicator_rate_limiter_tests.erl
@@ -1,7 +1,6 @@
 -module(couch_replicator_rate_limiter_tests).
 
 -include_lib("couch/include/couch_eunit.hrl").
--include("couch_replicator_test.hrl").
 
 rate_limiter_test_() ->
     {
diff --git a/src/couch_replicator/test/eunit/couch_replicator_retain_stats_between_job_runs.erl b/src/couch_replicator/test/eunit/couch_replicator_retain_stats_between_job_runs.erl
index d1116e8b0..04c665af5 100644
--- a/src/couch_replicator/test/eunit/couch_replicator_retain_stats_between_job_runs.erl
+++ b/src/couch_replicator/test/eunit/couch_replicator_retain_stats_between_job_runs.erl
@@ -15,7 +15,6 @@
 -include_lib("couch/include/couch_eunit.hrl").
 -include_lib("couch/include/couch_db.hrl").
 -include_lib("couch_replicator/src/couch_replicator.hrl").
--include("couch_replicator_test.hrl").
 
 -define(DELAY, 500).
 -define(TIMEOUT, 60000).
diff --git a/src/couch_replicator/test/eunit/couch_replicator_revs_diff_tests.erl b/src/couch_replicator/test/eunit/couch_replicator_revs_diff_tests.erl
index 75f01b20a..ccdfb506c 100644
--- a/src/couch_replicator/test/eunit/couch_replicator_revs_diff_tests.erl
+++ b/src/couch_replicator/test/eunit/couch_replicator_revs_diff_tests.erl
@@ -14,7 +14,6 @@
 
 -include_lib("couch/include/couch_eunit.hrl").
 -include_lib("couch/include/couch_db.hrl").
--include("couch_replicator_test.hrl").
 
 -define(DOC_COUNT, 100).
 -define(BATCH_SIZE, 5).
diff --git a/src/couch_replicator/test/eunit/couch_replicator_selector_tests.erl b/src/couch_replicator/test/eunit/couch_replicator_selector_tests.erl
index 31c5dc93c..d5566a38f 100644
--- a/src/couch_replicator/test/eunit/couch_replicator_selector_tests.erl
+++ b/src/couch_replicator/test/eunit/couch_replicator_selector_tests.erl
@@ -14,7 +14,6 @@
 
 -include_lib("couch/include/couch_eunit.hrl").
 -include_lib("couch/include/couch_db.hrl").
--include("couch_replicator_test.hrl").
 
 selector_replication_test_() ->
     {
diff --git a/src/couch_replicator/test/eunit/couch_replicator_small_max_request_size_target.erl b/src/couch_replicator/test/eunit/couch_replicator_small_max_request_size_target.erl
index 4a905850d..c7e89e8be 100644
--- a/src/couch_replicator/test/eunit/couch_replicator_small_max_request_size_target.erl
+++ b/src/couch_replicator/test/eunit/couch_replicator_small_max_request_size_target.erl
@@ -2,7 +2,6 @@
 
 -include_lib("couch/include/couch_eunit.hrl").
 -include_lib("couch/include/couch_db.hrl").
--include("couch_replicator_test.hrl").
 
 -define(TIMEOUT_EUNIT, 360).
 
diff --git a/src/couch_replicator/test/eunit/couch_replicator_test.hrl b/src/couch_replicator/test/eunit/couch_replicator_test.hrl
deleted file mode 100644
index 6db97ec2b..000000000
--- a/src/couch_replicator/test/eunit/couch_replicator_test.hrl
+++ /dev/null
@@ -1,35 +0,0 @@
-% Licensed under the Apache License, Version 2.0 (the "License"); you may not
-% use this file except in compliance with the License. You may obtain a copy of
-% the License at
-%
-%   http://www.apache.org/licenses/LICENSE-2.0
-%
-% Unless required by applicable law or agreed to in writing, software
-% distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-% WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-% License for the specific language governing permissions and limitations under
-% the License.
-
-
-% Borrowed from fabric2_test.hrl
-
-% Some test modules do not use with, so squash the unused fun compiler warning
--compile([{nowarn_unused_function, [{with, 1}]}]).
-
-
--define(TDEF(Name), {atom_to_list(Name), fun Name/1}).
--define(TDEF(Name, Timeout), {atom_to_list(Name), Timeout, fun Name/1}).
-
--define(TDEF_FE(Name), fun(Arg) -> {atom_to_list(Name), ?_test(Name(Arg))} end).
--define(TDEF_FE(Name, Timeout), fun(Arg) -> {atom_to_list(Name), {timeout, Timeout, ?_test(Name(Arg))}} end).
-
-
-with(Tests) ->
-    fun(ArgsTuple) ->
-        lists:map(fun
-            ({Name, Fun}) ->
-                {Name, ?_test(Fun(ArgsTuple))};
-            ({Name, Timeout, Fun}) ->
-                {Name, {timeout, Timeout, ?_test(Fun(ArgsTuple))}}
-        end, Tests)
-    end.
diff --git a/src/couch_replicator/test/eunit/couch_replicator_test_helper.erl b/src/couch_replicator/test/eunit/couch_replicator_test_helper.erl
index 16423e85c..f30bdb1cd 100644
--- a/src/couch_replicator/test/eunit/couch_replicator_test_helper.erl
+++ b/src/couch_replicator/test/eunit/couch_replicator_test_helper.erl
@@ -1,12 +1,5 @@
 -module(couch_replicator_test_helper).
 
--include_lib("couch/include/couch_eunit.hrl").
--include_lib("couch/include/couch_db.hrl").
--include_lib("couch_replicator/src/couch_replicator.hrl").
-
--define(USERNAME, "rep_test_user").
--define(PASSWORD, "rep_test_pass").
-
 -export([
     cluster_compare_dbs/2,
     cluster_compare_dbs/3,
@@ -23,6 +16,13 @@
     teardown_db/1
 ]).
 
+-include_lib("couch/include/couch_eunit.hrl").
+-include_lib("couch/include/couch_db.hrl").
+-include_lib("couch_replicator/src/couch_replicator.hrl").
+
+-define(USERNAME, "rep_test_user").
+-define(PASSWORD, "rep_test_pass").
+
 cluster_compare_dbs(Source, Target) ->
     cluster_compare_dbs(Source, Target, []).
 
diff --git a/src/couch_replicator/test/eunit/couch_replicator_use_checkpoints_tests.erl b/src/couch_replicator/test/eunit/couch_replicator_use_checkpoints_tests.erl
index 193855a3d..9d6dd1ec0 100644
--- a/src/couch_replicator/test/eunit/couch_replicator_use_checkpoints_tests.erl
+++ b/src/couch_replicator/test/eunit/couch_replicator_use_checkpoints_tests.erl
@@ -14,7 +14,6 @@
 
 -include_lib("couch/include/couch_eunit.hrl").
 -include_lib("couch/include/couch_db.hrl").
--include("couch_replicator_test.hrl").
 
 -define(DOCS_COUNT, 100).
 -define(TIMEOUT_EUNIT, 30).
diff --git a/src/ddoc_cache/test/eunit/ddoc_cache_basic_test.erl b/src/ddoc_cache/test/eunit/ddoc_cache_basic_test.erl
index 54c8c585b..33175965c 100644
--- a/src/ddoc_cache/test/eunit/ddoc_cache_basic_test.erl
+++ b/src/ddoc_cache/test/eunit/ddoc_cache_basic_test.erl
@@ -17,7 +17,7 @@
 ]).
 
 -include_lib("couch/include/couch_db.hrl").
--include_lib("eunit/include/eunit.hrl").
+-include_lib("couch/include/couch_eunit.hrl").
 -include("ddoc_cache_test.hrl").
 
 recover(DbName) ->
@@ -37,14 +37,14 @@ check_basic_test_() ->
         setup,
         fun start_couch/0,
         fun stop_couch/1,
-        ddoc_cache_tutil:with([
-            {"cache_ddoc", fun cache_ddoc/1},
-            {"cache_ddoc_rev", fun cache_ddoc_rev/1},
-            {"cache_vdu", fun cache_vdu/1},
-            {"cache_custom", fun cache_custom/1},
-            {"cache_ddoc_refresher_unchanged", fun cache_ddoc_refresher_unchanged/1},
-            {"dont_cache_not_found", fun dont_cache_not_found/1},
-            {"deprecated_api_works", fun deprecated_api_works/1}
+        with([
+            ?TDEF(cache_ddoc),
+            ?TDEF(cache_ddoc_rev),
+            ?TDEF(cache_vdu),
+            ?TDEF(cache_custom),
+            ?TDEF(cache_ddoc_refresher_unchanged),
+            ?TDEF(dont_cache_not_found),
+            ?TDEF(deprecated_api_works)
         ])
     }.
 
diff --git a/src/ddoc_cache/test/eunit/ddoc_cache_disabled_test.erl b/src/ddoc_cache/test/eunit/ddoc_cache_disabled_test.erl
index d6538e4a3..da7243ef0 100644
--- a/src/ddoc_cache/test/eunit/ddoc_cache_disabled_test.erl
+++ b/src/ddoc_cache/test/eunit/ddoc_cache_disabled_test.erl
@@ -13,7 +13,7 @@
 -module(ddoc_cache_disabled_test).
 
 -include_lib("couch/include/couch_db.hrl").
--include_lib("eunit/include/eunit.hrl").
+-include_lib("couch/include/couch_eunit.hrl").
 -include("ddoc_cache_test.hrl").
 
 start_couch() ->
@@ -26,10 +26,10 @@ check_disabled_test_() ->
         setup,
         fun start_couch/0,
         fun ddoc_cache_tutil:stop_couch/1,
-        ddoc_cache_tutil:with([
-            {"resp_ok", fun resp_ok/1},
-            {"resp_not_found", fun resp_not_found/1},
-            {"check_effectively_disabled", fun check_effectively_disabled/1}
+        with([
+            ?TDEF(resp_ok),
+            ?TDEF(resp_not_found),
+            ?TDEF(check_effectively_disabled)
         ])
     }.
 
diff --git a/src/ddoc_cache/test/eunit/ddoc_cache_entry_test.erl b/src/ddoc_cache/test/eunit/ddoc_cache_entry_test.erl
index fdba0f030..b46815a1e 100644
--- a/src/ddoc_cache/test/eunit/ddoc_cache_entry_test.erl
+++ b/src/ddoc_cache/test/eunit/ddoc_cache_entry_test.erl
@@ -16,8 +16,7 @@
     recover/1
 ]).
 
--include_lib("couch/include/couch_db.hrl").
--include_lib("eunit/include/eunit.hrl").
+-include_lib("couch/include/couch_eunit.hrl").
 -include("ddoc_cache_test.hrl").
 
 recover(<<"foo">>) ->
@@ -39,14 +38,14 @@ check_entry_test_() ->
         setup,
         fun start_couch/0,
         fun stop_couch/1,
-        ddoc_cache_tutil:with([
-            {"cancel_and_replace_opener", fun cancel_and_replace_opener/1},
-            {"condenses_access_messages", fun condenses_access_messages/1},
-            {"kill_opener_on_terminate", fun kill_opener_on_terminate/1},
-            {"evict_when_not_accessed", fun evict_when_not_accessed/1},
-            {"open_dead_entry", fun open_dead_entry/1},
-            {"handles_bad_messages", fun handles_bad_messages/1},
-            {"handles_code_change", fun handles_code_change/1}
+        with([
+            ?TDEF(cancel_and_replace_opener),
+            ?TDEF(condenses_access_messages),
+            ?TDEF(kill_opener_on_terminate),
+            ?TDEF(evict_when_not_accessed),
+            ?TDEF(open_dead_entry),
+            ?TDEF(handles_bad_messages),
+            ?TDEF(handles_code_change)
         ])
     }.
 
diff --git a/src/ddoc_cache/test/eunit/ddoc_cache_eviction_test.erl b/src/ddoc_cache/test/eunit/ddoc_cache_eviction_test.erl
index fffb3ed47..1111e3d73 100644
--- a/src/ddoc_cache/test/eunit/ddoc_cache_eviction_test.erl
+++ b/src/ddoc_cache/test/eunit/ddoc_cache_eviction_test.erl
@@ -16,8 +16,7 @@
     recover/1
 ]).
 
--include_lib("couch/include/couch_db.hrl").
--include_lib("eunit/include/eunit.hrl").
+-include_lib("couch/include/couch_eunit.hrl").
 -include_lib("mem3/include/mem3.hrl").
 -include("ddoc_cache_test.hrl").
 
@@ -38,9 +37,9 @@ check_eviction_test_() ->
         setup,
         fun start_couch/0,
         fun stop_couch/1,
-        ddoc_cache_tutil:with([
-            {"evict_all", fun evict_all/1},
-            {"dont_evict_all_unrelated", fun dont_evict_all_unrelated/1}
+        with([
+            ?TDEF(evict_all),
+            ?TDEF(dont_evict_all_unrelated)
         ])
     }.
 
diff --git a/src/ddoc_cache/test/eunit/ddoc_cache_lru_test.erl b/src/ddoc_cache/test/eunit/ddoc_cache_lru_test.erl
index d1dac869a..162cdb549 100644
--- a/src/ddoc_cache/test/eunit/ddoc_cache_lru_test.erl
+++ b/src/ddoc_cache/test/eunit/ddoc_cache_lru_test.erl
@@ -17,7 +17,7 @@
 ]).
 
 -include_lib("couch/include/couch_db.hrl").
--include_lib("eunit/include/eunit.hrl").
+-include_lib("couch/include/couch_eunit.hrl").
 -include("ddoc_cache_test.hrl").
 
 recover(<<"pause", _/binary>>) ->
@@ -58,12 +58,12 @@ check_lru_test_() ->
         setup,
         fun start_couch/0,
         fun stop_couch/1,
-        ddoc_cache_tutil:with([
-            {"check_multi_start", fun check_multi_start/1},
-            {"check_multi_open", fun check_multi_open/1},
-            {"check_capped_size", fun check_capped_size/1},
-            {"check_cache_refill", fun check_cache_refill/1},
-            {"check_evict_and_exit", fun check_evict_and_exit/1}
+        with([
+            ?TDEF(check_multi_start),
+            ?TDEF(check_multi_open),
+            ?TDEF(check_capped_size),
+            ?TDEF(check_cache_refill),
+            ?TDEF(check_evict_and_exit)
         ])
     }.
 
diff --git a/src/ddoc_cache/test/eunit/ddoc_cache_open_error_test.erl b/src/ddoc_cache/test/eunit/ddoc_cache_open_error_test.erl
index 8e71b1270..a92f898be 100644
--- a/src/ddoc_cache/test/eunit/ddoc_cache_open_error_test.erl
+++ b/src/ddoc_cache/test/eunit/ddoc_cache_open_error_test.erl
@@ -12,8 +12,7 @@
 
 -module(ddoc_cache_open_error_test).
 
--include_lib("couch/include/couch_db.hrl").
--include_lib("eunit/include/eunit.hrl").
+-include_lib("couch/include/couch_eunit.hrl").
 -include("ddoc_cache_test.hrl").
 
 start_couch() ->
@@ -32,8 +31,8 @@ check_open_error_test_() ->
         setup,
         fun start_couch/0,
         fun stop_couch/1,
-        ddoc_cache_tutil:with([
-            {"handle_open_error", fun handle_open_error/1}
+        with([
+            ?TDEF(handle_open_error)
         ])
     }.
 
diff --git a/src/ddoc_cache/test/eunit/ddoc_cache_open_test.erl b/src/ddoc_cache/test/eunit/ddoc_cache_open_test.erl
index f9a9460e7..778ef6cbb 100644
--- a/src/ddoc_cache/test/eunit/ddoc_cache_open_test.erl
+++ b/src/ddoc_cache/test/eunit/ddoc_cache_open_test.erl
@@ -19,9 +19,7 @@
     insert/2
 ]).
 
--include_lib("couch/include/couch_db.hrl").
--include_lib("eunit/include/eunit.hrl").
--include("ddoc_cache_test.hrl").
+-include_lib("couch/include/couch_eunit.hrl").
 
 %% behaviour callbacks
 dbname(DbName) ->
@@ -58,12 +56,11 @@ check_open_error_test_() ->
         setup,
         fun start_couch/0,
         fun stop_couch/1,
-        ddoc_cache_tutil:with([
-            {"should_return_database_does_not_exist", fun should_return_database_does_not_exist/1},
-            {"should_not_call_recover_when_database_does_not_exist",
-                fun should_not_call_recover_when_database_does_not_exist/1},
-            {"should_call_recover_when_needed", fun should_call_recover_when_needed/1},
-            {"should_call_recover_when_needed", fun should_not_crash_lru_process/1}
+        with([
+            ?TDEF(should_return_database_does_not_exist),
+            ?TDEF(should_not_call_recover_when_database_does_not_exist),
+            ?TDEF(should_call_recover_when_needed),
+            ?TDEF(should_not_crash_lru_process)
         ])
     }.
 
diff --git a/src/ddoc_cache/test/eunit/ddoc_cache_refresh_test.erl b/src/ddoc_cache/test/eunit/ddoc_cache_refresh_test.erl
index e690f8235..9e897eee8 100644
--- a/src/ddoc_cache/test/eunit/ddoc_cache_refresh_test.erl
+++ b/src/ddoc_cache/test/eunit/ddoc_cache_refresh_test.erl
@@ -17,7 +17,7 @@
 ]).
 
 -include_lib("couch/include/couch_db.hrl").
--include_lib("eunit/include/eunit.hrl").
+-include_lib("couch/include/couch_eunit.hrl").
 -include("ddoc_cache_test.hrl").
 
 recover(DbName) ->
@@ -37,12 +37,12 @@ check_refresh_test_() ->
         setup,
         fun start_couch/0,
         fun stop_couch/1,
-        ddoc_cache_tutil:with([
-            {"refresh_ddoc", fun refresh_ddoc/1},
-            {"refresh_ddoc_rev", fun refresh_ddoc_rev/1},
-            {"refresh_vdu", fun refresh_vdu/1},
-            {"refresh_custom", fun refresh_custom/1},
-            {"refresh_multiple", fun refresh_multiple/1}
+        with([
+            ?TDEF(refresh_ddoc),
+            ?TDEF(refresh_ddoc_rev),
+            ?TDEF(refresh_vdu),
+            ?TDEF(refresh_custom),
+            ?TDEF(refresh_multiple)
         ])
     }.
 
diff --git a/src/ddoc_cache/test/eunit/ddoc_cache_remove_test.erl b/src/ddoc_cache/test/eunit/ddoc_cache_remove_test.erl
index f974dd804..3186bbd63 100644
--- a/src/ddoc_cache/test/eunit/ddoc_cache_remove_test.erl
+++ b/src/ddoc_cache/test/eunit/ddoc_cache_remove_test.erl
@@ -18,7 +18,7 @@
 
 -include_lib("couch/include/couch_db.hrl").
 -include_lib("mem3/include/mem3.hrl").
--include_lib("eunit/include/eunit.hrl").
+-include_lib("couch/include/couch_eunit.hrl").
 -include("ddoc_cache_test.hrl").
 
 recover(DbName) ->
@@ -46,12 +46,12 @@ check_refresh_test_() ->
         setup,
         fun start_couch/0,
         fun stop_couch/1,
-        ddoc_cache_tutil:with([
-            {"remove_ddoc", fun remove_ddoc/1},
-            {"remove_ddoc_rev", fun remove_ddoc_rev/1},
-            {"remove_ddoc_rev_only", fun remove_ddoc_rev_only/1},
-            {"remove_custom_not_ok", fun remove_custom_not_ok/1},
-            {"remove_custom_error", fun remove_custom_error/1}
+        with([
+            ?TDEF(remove_ddoc),
+            ?TDEF(remove_ddoc_rev),
+            ?TDEF(remove_ddoc_rev_only),
+            ?TDEF(remove_custom_not_ok),
+            ?TDEF(remove_custom_error)
         ])
     }.
 
diff --git a/src/ddoc_cache/test/eunit/ddoc_cache_tutil.erl b/src/ddoc_cache/test/eunit/ddoc_cache_tutil.erl
index ced5c9f99..156472265 100644
--- a/src/ddoc_cache/test/eunit/ddoc_cache_tutil.erl
+++ b/src/ddoc_cache/test/eunit/ddoc_cache_tutil.erl
@@ -102,9 +102,3 @@ purge_modules() ->
         undefined ->
             ok
     end.
-
-%% eunit implementation of {with, Tests} doesn't detect test name correctly
-with(Tests) ->
-    fun(ArgsTuple) ->
-        [{Name, ?_test(Fun(ArgsTuple))} || {Name, Fun} <- Tests]
-    end.
diff --git a/src/dreyfus/test/dreyfus_purge_test.erl b/src/dreyfus/test/dreyfus_purge_test.erl
index e64a046a7..bed1f79f8 100644
--- a/src/dreyfus/test/dreyfus_purge_test.erl
+++ b/src/dreyfus/test/dreyfus_purge_test.erl
@@ -12,11 +12,6 @@
 
 -module(dreyfus_purge_test).
 
--include_lib("couch/include/couch_db.hrl").
--include_lib("dreyfus/include/dreyfus.hrl").
--include_lib("couch/include/couch_eunit.hrl").
--include_lib("mem3/include/mem3.hrl").
-
 -export([
     test_purge_single/0,
     test_purge_multiple/0,
@@ -32,6 +27,7 @@
     test_delete_conflict/0,
     test_all/0
 ]).
+
 -export([
     test_verify_index_exists1/0,
     test_verify_index_exists2/0,
@@ -44,6 +40,11 @@
 -compile(export_all).
 -compile(nowarn_export_all).
 
+-include_lib("couch/include/couch_db.hrl").
+-include_lib("dreyfus/include/dreyfus.hrl").
+-include_lib("couch/include/couch_eunit.hrl").
+-include_lib("mem3/include/mem3.hrl").
+
 test_all() ->
     test_purge_single(),
     test_purge_multiple(),
diff --git a/src/fabric/include/fabric.hrl b/src/fabric/include/fabric.hrl
index 2a4da8bcf..0c6ac5df8 100644
--- a/src/fabric/include/fabric.hrl
+++ b/src/fabric/include/fabric.hrl
@@ -10,8 +10,6 @@
 % License for the specific language governing permissions and limitations under
 % the License.
 
--include_lib("eunit/include/eunit.hrl").
-
 -record(collector, {
     db_name=nil,
     query_args,
diff --git a/src/fabric/src/fabric_doc_open_revs.erl b/src/fabric/src/fabric_doc_open_revs.erl
index a5ff871e7..71188dd51 100644
--- a/src/fabric/src/fabric_doc_open_revs.erl
+++ b/src/fabric/src/fabric_doc_open_revs.erl
@@ -14,10 +14,8 @@
 
 -export([go/4]).
 
--include_lib("fabric/include/fabric.hrl").
 -include_lib("mem3/include/mem3.hrl").
 -include_lib("couch/include/couch_db.hrl").
--include_lib("eunit/include/eunit.hrl").
 
 -record(state, {
     dbname,
@@ -317,7 +315,7 @@ collapse_duplicate_revs_int([Reply | Rest]) ->
     [Reply | collapse_duplicate_revs(Rest)].
 
 -ifdef(TEST).
--include_lib("eunit/include/eunit.hrl").
+-include_lib("couch/include/couch_eunit.hrl").
 
 setup_all() ->
     config:start_link([]),
diff --git a/src/fabric/src/fabric_ring.erl b/src/fabric/src/fabric_ring.erl
index 2bb7d717f..9349efb90 100644
--- a/src/fabric/src/fabric_ring.erl
+++ b/src/fabric/src/fabric_ring.erl
@@ -271,7 +271,9 @@ stop_unused_workers(Workers, AllResponses, UsedResponses, CleanupCb) ->
 stop_workers(Shards) when is_list(Shards) ->
     rexi:kill_all([{Node, Ref} || #shard{node = Node, ref = Ref} <- Shards]).
 
-% Unit tests
+-ifdef(TEST).
+
+-include_lib("couch/include/couch_eunit.hrl").
 
 is_progress_possible_full_range_test() ->
     % a base case
@@ -558,3 +560,5 @@ mk_shard(Name, Range) ->
     Node = list_to_atom(Name),
     BName = list_to_binary(Name),
     #shard{name = BName, node = Node, range = Range}.
+
+-endif.
diff --git a/src/fabric/src/fabric_view.erl b/src/fabric/src/fabric_view.erl
index c2ef13392..82f9c2bc6 100644
--- a/src/fabric/src/fabric_view.erl
+++ b/src/fabric/src/fabric_view.erl
@@ -480,6 +480,10 @@ fix_skip_and_limit(#mrargs{} = Args) ->
 remove_finalizer(Args) ->
     couch_mrview_util:set_extra(Args, finalizer, null).
 
+-ifdef(TEST).
+
+-include_lib("couch/include/couch_eunit.hrl").
+
 remove_overlapping_shards_test() ->
     Cb = undefined,
 
@@ -559,3 +563,5 @@ mk_shard(Name, Range) ->
     Node = list_to_atom(Name),
     BName = list_to_binary(Name),
     #shard{name = BName, node = Node, range = Range}.
+
+-endif.
diff --git a/src/fabric/src/fabric_view_changes.erl b/src/fabric/src/fabric_view_changes.erl
index 0ee996df7..693e24384 100644
--- a/src/fabric/src/fabric_view_changes.erl
+++ b/src/fabric/src/fabric_view_changes.erl
@@ -777,9 +777,7 @@ increment_changes_epoch() ->
 
 -ifdef(TEST).
 
--include_lib("eunit/include/eunit.hrl").
-
--define(TDEF(Name), {atom_to_list(Name), fun Name/0}).
+-include_lib("couch/include/couch_eunit.hrl").
 
 unpack_seq_setup() ->
     meck:new(mem3),
@@ -794,7 +792,7 @@ unpack_seqs_test_() ->
         setup,
         fun unpack_seq_setup/0,
         fun(_) -> meck:unload() end,
-        [
+        with([
             ?TDEF(t_full_seq),
             ?TDEF(t_full_seq_quoted),
             ?TDEF(t_full_seq_with_hyphen),
@@ -811,73 +809,73 @@ unpack_seqs_test_() ->
             ?TDEF(t_fail_random_junk),
             ?TDEF(t_fail_old_bigcouch_term),
             ?TDEF(t_fail_old_bigcouch_string)
-        ]
+        ])
     }.
 
-t_full_seq() ->
+t_full_seq(_) ->
     assert_shards(
         "23423-g1AAAAE7eJzLYWBg4MhgTmHgS0ktM3QwND"
         "LXMwBCwxygOFMiQ5L8____sxIZcKlIUgCSSfZgRUw4FTmAFMWDFTHiVJQAUlSPX1Ee"
         "C5BkaABSQHXzsxKZ8StcAFG4H4_bIAoPQBTeJ2j1A4hCUJBkAQC7U1NA"
     ).
 
-t_full_seq_quoted() ->
+t_full_seq_quoted(_) ->
     assert_shards(
         "\"23423-g1AAAAE7eJzLYWBg4MhgTmHgS0ktM3QwND"
         "LXMwBCwxygOFMiQ5L8____sxIZcKlIUgCSSfZgRUw4FTmAFMWDFTHiVJQAUlSPX1Ee"
         "C5BkaABSQHXzsxKZ8StcAFG4H4_bIAoPQBTeJ2j1A4hCUJBkAQC7U1NA\""
     ).
 
-t_full_seq_with_hyphen() ->
+t_full_seq_with_hyphen(_) ->
     assert_shards(
         "651-g1AAAAE7eJzLYWBg4MhgTmHgS0ktM3QwNDLXMwBCwxygOFMiQ"
         "5L8____sxJTcalIUgCSSfZgReE4FTmAFMWDFYXgVJQAUlQPVuSKS1EeC5BkaABSQHXz8"
         "VgJUbgAonB_VqIPfoUHIArvE7T6AUQh0I1-WQAzp1XB"
     ).
 
-t_full_seq_quoted_with_hyphen() ->
+t_full_seq_quoted_with_hyphen(_) ->
     assert_shards(
         "\"651-g1AAAAE7eJzLYWBg4MhgTmHgS0ktM3QwNDLXMwBCwxygOFMiQ"
         "5L8____sxJTcalIUgCSSfZgReE4FTmAFMWDFYXgVJQAUlQPVuSKS1EeC5BkaABSQHXz8"
         "VgJUbgAonB_VqIPfoUHIArvE7T6AUQh0I1-WQAzp1XB\""
     ).
 
-t_no_numeric_prefix() ->
+t_no_numeric_prefix(_) ->
     assert_shards(
         "g1AAAAE7eJzLYWBg4MhgTmHgS0ktM3QwND"
         "LXMwBCwxygOFMiQ5L8____sxIZcKlIUgCSSfZgRUw4FTmAFMWDFTHiVJQAUlSPX1Ee"
         "C5BkaABSQHXzsxKZ8StcAFG4H4_bIAoPQBTeJ2j1A4hCUJBkAQC7U1NA"
     ).
 
-t_zero_seq_int() ->
+t_zero_seq_int(_) ->
     assert_shards(0).
 
-t_zero_seq_string() ->
+t_zero_seq_string(_) ->
     assert_shards("0").
 
-t_fail_now() ->
+t_fail_now(_) ->
     % "now" should have been transformed into a sequence in get_start_seq/2
     fail("now").
 
-t_fail_numeric_int() ->
+t_fail_numeric_int(_) ->
     fail(1234).
 
-t_fail_numeric_string() ->
+t_fail_numeric_string(_) ->
     fail("1234").
 
-t_fail_numeric_string_quoted() ->
+t_fail_numeric_string_quoted(_) ->
     fail("\"1234\"").
 
-t_fail_empty_string() ->
+t_fail_empty_string(_) ->
     fail("").
 
-t_fail_empty_string_quoted() ->
+t_fail_empty_string_quoted(_) ->
     fail("\"\"").
 
-t_fail_random_junk() ->
+t_fail_random_junk(_) ->
     fail("randomjunk").
 
-t_fail_old_bigcouch_term() ->
+t_fail_old_bigcouch_term(_) ->
     fail([
         23423,
         <<
@@ -887,7 +885,7 @@ t_fail_old_bigcouch_term() ->
         >>
     ]).
 
-t_fail_old_bigcouch_string() ->
+t_fail_old_bigcouch_string(_) ->
     fail(
         "[23423,\"g1AAAAE7eJzLYWBg4MhgTmHgS0ktM3QwND"
         "LXMwBCwxygOFMiQ5L8____sxIZcKlIUgCSSfZgRUw4FTmAFMWDFTHiVJQAUlSPX1Ee"
diff --git a/src/fabric/test/eunit/fabric_db_create_tests.erl b/src/fabric/test/eunit/fabric_db_create_tests.erl
index 5720f57d8..9d78d177d 100644
--- a/src/fabric/test/eunit/fabric_db_create_tests.erl
+++ b/src/fabric/test/eunit/fabric_db_create_tests.erl
@@ -13,19 +13,16 @@
 -module(fabric_db_create_tests).
 
 -include_lib("couch/include/couch_eunit.hrl").
--include_lib("couch/include/couch_db.hrl").
 -include_lib("mem3/include/mem3.hrl").
 
--define(TDEF(A), {atom_to_list(A), fun A/0}).
-
 main_test_() ->
     {
         setup,
         fun setup/0,
         fun teardown/1,
-        [
+        with([
             ?TDEF(t_handle_shard_doc_conflict)
-        ]
+        ])
     }.
 
 setup() ->
@@ -34,7 +31,7 @@ setup() ->
 teardown(Ctx) ->
     test_util:stop_couch(Ctx).
 
-t_handle_shard_doc_conflict() ->
+t_handle_shard_doc_conflict(_) ->
     DbName = ?tempdb(),
     meck:new(mem3, [passthrough]),
     meck:new(fabric_util, [passthrough]),
diff --git a/src/fabric/test/eunit/fabric_db_info_tests.erl b/src/fabric/test/eunit/fabric_db_info_tests.erl
index d4fb1e73f..57313df50 100644
--- a/src/fabric/test/eunit/fabric_db_info_tests.erl
+++ b/src/fabric/test/eunit/fabric_db_info_tests.erl
@@ -13,19 +13,15 @@
 -module(fabric_db_info_tests).
 
 -include_lib("couch/include/couch_eunit.hrl").
--include_lib("couch/include/couch_db.hrl").
--include_lib("mem3/include/mem3.hrl").
-
--define(TDEF(A), {atom_to_list(A), fun A/0}).
 
 main_test_() ->
     {
         setup,
         fun setup/0,
         fun teardown/1,
-        [
+        with([
             ?TDEF(t_update_seq_has_uuids)
-        ]
+        ])
     }.
 
 setup() ->
@@ -35,7 +31,7 @@ teardown(Ctx) ->
     meck:unload(),
     test_util:stop_couch(Ctx).
 
-t_update_seq_has_uuids() ->
+t_update_seq_has_uuids(_) ->
     DbName = ?tempdb(),
     ok = fabric:create_db(DbName, [{q, 1}, {n, 1}]),
 
diff --git a/src/fabric/test/eunit/fabric_db_uuids_tests.erl b/src/fabric/test/eunit/fabric_db_uuids_tests.erl
index 1d99019a8..1042c7cd3 100644
--- a/src/fabric/test/eunit/fabric_db_uuids_tests.erl
+++ b/src/fabric/test/eunit/fabric_db_uuids_tests.erl
@@ -13,19 +13,16 @@
 -module(fabric_db_uuids_tests).
 
 -include_lib("couch/include/couch_eunit.hrl").
--include_lib("couch/include/couch_db.hrl").
 -include_lib("mem3/include/mem3.hrl").
 
--define(TDEF(A), {atom_to_list(A), fun A/0}).
-
 main_test_() ->
     {
         setup,
         fun setup/0,
         fun teardown/1,
-        [
+        with([
             ?TDEF(t_can_get_shard_uuids)
-        ]
+        ])
     }.
 
 setup() ->
@@ -35,7 +32,7 @@ teardown(Ctx) ->
     meck:unload(),
     test_util:stop_couch(Ctx).
 
-t_can_get_shard_uuids() ->
+t_can_get_shard_uuids(_) ->
     DbName = ?tempdb(),
     ok = fabric:create_db(DbName, []),
     Shards = mem3:shards(DbName),
diff --git a/src/fabric/test/eunit/fabric_moved_shards_seq_tests.erl b/src/fabric/test/eunit/fabric_moved_shards_seq_tests.erl
index 5463a5170..c3bb0c880 100644
--- a/src/fabric/test/eunit/fabric_moved_shards_seq_tests.erl
+++ b/src/fabric/test/eunit/fabric_moved_shards_seq_tests.erl
@@ -14,18 +14,15 @@
 
 -include_lib("couch/include/couch_eunit.hrl").
 -include_lib("couch/include/couch_db.hrl").
--include_lib("mem3/include/mem3.hrl").
-
--define(TDEF(A), {atom_to_list(A), fun A/0}).
 
 main_test_() ->
     {
         setup,
         fun setup/0,
         fun teardown/1,
-        [
+        with([
             ?TDEF(t_shard_moves_avoid_sequence_rewinds)
-        ]
+        ])
     }.
 
 setup() ->
@@ -35,7 +32,7 @@ teardown(Ctx) ->
     meck:unload(),
     test_util:stop_couch(Ctx).
 
-t_shard_moves_avoid_sequence_rewinds() ->
+t_shard_moves_avoid_sequence_rewinds(_) ->
     DocCnt = 30,
     DbName = ?tempdb(),
 
diff --git a/src/fabric/test/eunit/fabric_rpc_purge_tests.erl b/src/fabric/test/eunit/fabric_rpc_purge_tests.erl
index d3872410e..07e6b1d42 100644
--- a/src/fabric/test/eunit/fabric_rpc_purge_tests.erl
+++ b/src/fabric/test/eunit/fabric_rpc_purge_tests.erl
@@ -15,8 +15,6 @@
 -include_lib("couch/include/couch_eunit.hrl").
 -include_lib("couch/include/couch_db.hrl").
 
--define(TDEF(A), {A, fun A/1}).
-
 % TODO: Add tests:
 %         - filter some updates
 %         - allow for an update that was filtered by a node
@@ -33,35 +31,35 @@ main_test_() ->
                 foreach,
                 fun setup_no_purge/0,
                 fun teardown_no_purge/1,
-                lists:map(fun wrap/1, [
-                    ?TDEF(t_no_purge_no_filter)
-                ])
+                [
+                    ?TDEF_FE(t_no_purge_no_filter)
+                ]
             },
             {
                 foreach,
                 fun setup_single_purge/0,
                 fun teardown_single_purge/1,
-                lists:map(fun wrap/1, [
-                    ?TDEF(t_filter),
-                    ?TDEF(t_filter_unknown_node),
-                    ?TDEF(t_filter_local_node),
-                    ?TDEF(t_no_filter_old_node),
-                    ?TDEF(t_no_filter_different_node),
-                    ?TDEF(t_no_filter_after_repl)
-                ])
+                [
+                    ?TDEF_FE(t_filter),
+                    ?TDEF_FE(t_filter_unknown_node),
+                    ?TDEF_FE(t_filter_local_node),
+                    ?TDEF_FE(t_no_filter_old_node),
+                    ?TDEF_FE(t_no_filter_different_node),
+                    ?TDEF_FE(t_no_filter_after_repl)
+                ]
             },
             {
                 foreach,
                 fun setup_multi_purge/0,
                 fun teardown_multi_purge/1,
-                lists:map(fun wrap/1, [
-                    ?TDEF(t_filter),
-                    ?TDEF(t_filter_unknown_node),
-                    ?TDEF(t_filter_local_node),
-                    ?TDEF(t_no_filter_old_node),
-                    ?TDEF(t_no_filter_different_node),
-                    ?TDEF(t_no_filter_after_repl)
-                ])
+                [
+                    ?TDEF_FE(t_filter),
+                    ?TDEF_FE(t_filter_unknown_node),
+                    ?TDEF_FE(t_filter_local_node),
+                    ?TDEF_FE(t_no_filter_old_node),
+                    ?TDEF_FE(t_no_filter_different_node),
+                    ?TDEF_FE(t_no_filter_after_repl)
+                ]
             }
         ]
     }.
@@ -190,15 +188,6 @@ t_no_filter_after_repl({DbName, DocId, OldDoc, PSeq}) ->
 
     ?assertEqual({ok, OldDoc}, open_doc(DbName, DocId)).
 
-wrap({Name, Fun}) ->
-    fun(Arg) ->
-        {timeout, 60,
-            {atom_to_list(Name), fun() ->
-                process_flag(trap_exit, true),
-                Fun(Arg)
-            end}}
-    end.
-
 create_db() ->
     DbName = ?tempdb(),
     couch_db:create(DbName, [?ADMIN_CTX]).
diff --git a/src/fabric/test/eunit/fabric_rpc_tests.erl b/src/fabric/test/eunit/fabric_rpc_tests.erl
index 0fc295cf4..16bb66bad 100644
--- a/src/fabric/test/eunit/fabric_rpc_tests.erl
+++ b/src/fabric/test/eunit/fabric_rpc_tests.erl
@@ -15,8 +15,6 @@
 -include_lib("couch/include/couch_eunit.hrl").
 -include_lib("couch/include/couch_db.hrl").
 
--define(TDEF(A), {A, fun A/1}).
-
 main_test_() ->
     {
         setup,
@@ -28,27 +26,27 @@ main_test_() ->
                 foreach,
                 fun setup_no_db_or_config/0,
                 fun teardown_db/1,
-                lists:map(fun wrap/1, [
-                    ?TDEF(t_no_config_non_shard_db_create_succeeds)
-                ])
+                [
+                    ?TDEF_FE(t_no_config_non_shard_db_create_succeeds)
+                ]
             },
             {
                 foreach,
                 fun setup_shard/0,
                 fun teardown_noop/1,
-                lists:map(fun wrap/1, [
-                    ?TDEF(t_no_db),
-                    ?TDEF(t_no_config_db_create_fails_for_shard),
-                    ?TDEF(t_no_config_db_create_fails_for_shard_rpc)
-                ])
+                [
+                    ?TDEF_FE(t_no_db),
+                    ?TDEF_FE(t_no_config_db_create_fails_for_shard),
+                    ?TDEF_FE(t_no_config_db_create_fails_for_shard_rpc)
+                ]
             },
             {
                 foreach,
                 fun setup_shard/0,
                 fun teardown_db/1,
-                lists:map(fun wrap/1, [
-                    ?TDEF(t_db_create_with_config)
-                ])
+                [
+                    ?TDEF_FE(t_db_create_with_config)
+                ]
             }
         ]
     }.
@@ -78,15 +76,6 @@ teardown_noop(_DbName) ->
 teardown_db(DbName) ->
     ok = couch_server:delete(DbName, []).
 
-wrap({Name, Fun}) ->
-    fun(Arg) ->
-        {timeout, 60,
-            {atom_to_list(Name), fun() ->
-                process_flag(trap_exit, true),
-                Fun(Arg)
-            end}}
-    end.
-
 t_no_db(DbName) ->
     ?assertEqual({not_found, no_db_file}, couch_db:open_int(DbName, [?ADMIN_CTX])).
 
diff --git a/src/global_changes/test/eunit/global_changes_hooks_tests.erl b/src/global_changes/test/eunit/global_changes_hooks_tests.erl
index 4872da82b..66e3dcd67 100644
--- a/src/global_changes/test/eunit/global_changes_hooks_tests.erl
+++ b/src/global_changes/test/eunit/global_changes_hooks_tests.erl
@@ -12,11 +12,11 @@
 
 -module(global_changes_hooks_tests).
 
+-export([allowed_owner/2]).
+
 -include_lib("couch/include/couch_eunit.hrl").
 -include_lib("couch/include/couch_db.hrl").
 
--export([allowed_owner/2]).
-
 -define(t2l(V), lists:flatten(io_lib:format("~p", [V]))).
 
 start() ->
diff --git a/src/mem3/src/mem3_rep.erl b/src/mem3/src/mem3_rep.erl
index f74b3c0ae..010d21364 100644
--- a/src/mem3/src/mem3_rep.erl
+++ b/src/mem3/src/mem3_rep.erl
@@ -845,49 +845,48 @@ reset_remaining(#{} = Targets) ->
     ).
 
 -ifdef(TEST).
--include_lib("eunit/include/eunit.hrl").
 
--define(TDEF(A), {atom_to_list(A), fun A/0}).
+-include_lib("couch/include/couch_eunit.hrl").
 
 find_source_seq_int_test_() ->
     {
         setup,
         fun() -> meck:expect(couch_log, warning, 2, ok) end,
         fun(_) -> meck:unload() end,
-        [
+        with([
             ?TDEF(t_unknown_node),
             ?TDEF(t_unknown_uuid),
             ?TDEF(t_ok),
             ?TDEF(t_old_ok),
             ?TDEF(t_different_node)
-        ]
+        ])
     }.
 
-t_unknown_node() ->
+t_unknown_node(_) ->
     ?assertEqual(
         find_source_seq_int(doc_(), <<"foo">>, <<"bing">>, <<"bar_uuid">>, 10),
         0
     ).
 
-t_unknown_uuid() ->
+t_unknown_uuid(_) ->
     ?assertEqual(
         find_source_seq_int(doc_(), <<"foo">>, <<"bar">>, <<"teapot">>, 10),
         0
     ).
 
-t_ok() ->
+t_ok(_) ->
     ?assertEqual(
         find_source_seq_int(doc_(), <<"foo">>, <<"bar">>, <<"bar_uuid">>, 100),
         100
     ).
 
-t_old_ok() ->
+t_old_ok(_) ->
     ?assertEqual(
         find_source_seq_int(doc_(), <<"foo">>, <<"bar">>, <<"bar_uuid">>, 84),
         50
     ).
 
-t_different_node() ->
+t_different_node(_) ->
     ?assertEqual(
         find_source_seq_int(doc_(), <<"foo2">>, <<"bar">>, <<"bar_uuid">>, 92),
         31
@@ -983,112 +982,104 @@ targets_map_test_() ->
         setup,
         fun() -> meck:new(mem3, [passthrough]) end,
         fun(_) -> meck:unload() end,
-        [
-            target_not_a_shard(),
-            source_contained_in_target(),
-            multiple_targets(),
-            uneven_overlap(),
-            target_not_in_shard_map()
-        ]
+        with([
+            ?TDEF(target_not_a_shard),
+            ?TDEF(source_contained_in_target),
+            ?TDEF(multiple_targets),
+            ?TDEF(uneven_overlap),
+            ?TDEF(target_not_in_shard_map)
+        ])
     }.
 
-target_not_a_shard() ->
-    ?_assertEqual(#{[0, ?RING_END] => <<"t">>}, targets_map(<<"s">>, <<"t">>)).
-
-source_contained_in_target() ->
-    ?_test(begin
-        R07 = [16#00000000, 16#7fffffff],
-        R8f = [16#80000000, 16#ffffffff],
-        R0f = [16#00000000, 16#ffffffff],
-
-        Shards = [
-            #shard{node = 'n1', range = R07},
-            #shard{node = 'n1', range = R8f},
-            #shard{node = 'n2', range = R07},
-            #shard{node = 'n2', range = R8f},
-            #shard{node = 'n3', range = R0f}
-        ],
-        meck:expect(mem3, shards, 1, Shards),
-
-        SrcName1 = <<"shards/00000000-7fffffff/d.1551893552">>,
-        TgtName1 = <<"shards/00000000-7fffffff/d.1551893552">>,
-
-        Src1 = #shard{name = SrcName1, node = 'n1'},
-        Tgt1 = #shard{name = TgtName1, node = 'n2'},
-        Map1 = targets_map(Src1, Tgt1),
-        ?assertEqual(1, map_size(Map1)),
-        ?assertMatch(#{R07 := #shard{node = 'n2'}}, Map1),
-
-        Tgt2 = #shard{name = TgtName1, node = 'n3'},
-        Map2 = targets_map(Src1, Tgt2),
-        ?assertEqual(1, map_size(Map2)),
-        ?assertMatch(#{R0f := #shard{node = 'n3'}}, Map2)
-    end).
+target_not_a_shard(_) ->
+    ?assertEqual(#{[0, ?RING_END] => <<"t">>}, targets_map(<<"s">>, <<"t">>)).
 
-multiple_targets() ->
-    ?_test(begin
-        R07 = [16#00000000, 16#7fffffff],
-        R8f = [16#80000000, 16#ffffffff],
-        R0f = [16#00000000, 16#ffffffff],
-
-        Shards = [
-            #shard{node = 'n1', range = R07},
-            #shard{node = 'n1', range = R8f},
-            #shard{node = 'n2', range = R0f}
-        ],
-        meck:expect(mem3, shards, 1, Shards),
-
-        SrcName = <<"shards/00000000-ffffffff/d.1551893552">>,
-        TgtName = <<"shards/00000000-7fffffff/d.1551893552">>,
-
-        Src = #shard{name = SrcName, node = 'n2'},
-        Tgt = #shard{name = TgtName, node = 'n1'},
-        Map = targets_map(Src, Tgt),
-        ?assertEqual(2, map_size(Map)),
-        ?assertMatch(#{R07 := #shard{node = 'n1'}}, Map),
-        ?assertMatch(#{R8f := #shard{node = 'n1'}}, Map)
-    end).
+source_contained_in_target(_) ->
+    R07 = [16#00000000, 16#7fffffff],
+    R8f = [16#80000000, 16#ffffffff],
+    R0f = [16#00000000, 16#ffffffff],
 
-uneven_overlap() ->
-    ?_test(begin
-        R04 = [16#00000000, 16#4fffffff],
-        R26 = [16#20000000, 16#6fffffff],
-        R58 = [16#50000000, 16#8fffffff],
-        R9f = [16#90000000, 16#ffffffff],
-        Shards = [
-            #shard{node = 'n1', range = R04},
-            #shard{node = 'n1', range = R58},
-            #shard{node = 'n1', range = R9f},
-            #shard{node = 'n2', range = R26}
-        ],
-
-        meck:expect(mem3, shards, 1, Shards),
-
-        SrcName = <<"shards/20000000-6fffffff/d.1551893552">>,
-        TgtName = <<"shards/20000000-6fffffff/d.1551893552">>,
-
-        Src = #shard{name = SrcName, node = 'n2'},
-        Tgt = #shard{name = TgtName, node = 'n1'},
-        Map = targets_map(Src, Tgt),
-        ?assertEqual(2, map_size(Map)),
-        ?assertMatch(#{R04 := #shard{node = 'n1'}}, Map),
-        ?assertMatch(#{R58 := #shard{node = 'n1'}}, Map)
-    end).
+    Shards = [
+        #shard{node = 'n1', range = R07},
+        #shard{node = 'n1', range = R8f},
+        #shard{node = 'n2', range = R07},
+        #shard{node = 'n2', range = R8f},
+        #shard{node = 'n3', range = R0f}
+    ],
+    meck:expect(mem3, shards, 1, Shards),
+
+    SrcName1 = <<"shards/00000000-7fffffff/d.1551893552">>,
+    TgtName1 = <<"shards/00000000-7fffffff/d.1551893552">>,
+
+    Src1 = #shard{name = SrcName1, node = 'n1'},
+    Tgt1 = #shard{name = TgtName1, node = 'n2'},
+    Map1 = targets_map(Src1, Tgt1),
+    ?assertEqual(1, map_size(Map1)),
+    ?assertMatch(#{R07 := #shard{node = 'n2'}}, Map1),
+
+    Tgt2 = #shard{name = TgtName1, node = 'n3'},
+    Map2 = targets_map(Src1, Tgt2),
+    ?assertEqual(1, map_size(Map2)),
+    ?assertMatch(#{R0f := #shard{node = 'n3'}}, Map2).
+
+multiple_targets(_) ->
+    R07 = [16#00000000, 16#7fffffff],
+    R8f = [16#80000000, 16#ffffffff],
+    R0f = [16#00000000, 16#ffffffff],
+
+    Shards = [
+        #shard{node = 'n1', range = R07},
+        #shard{node = 'n1', range = R8f},
+        #shard{node = 'n2', range = R0f}
+    ],
+    meck:expect(mem3, shards, 1, Shards),
+
+    SrcName = <<"shards/00000000-ffffffff/d.1551893552">>,
+    TgtName = <<"shards/00000000-7fffffff/d.1551893552">>,
+
+    Src = #shard{name = SrcName, node = 'n2'},
+    Tgt = #shard{name = TgtName, node = 'n1'},
+    Map = targets_map(Src, Tgt),
+    ?assertEqual(2, map_size(Map)),
+    ?assertMatch(#{R07 := #shard{node = 'n1'}}, Map),
+    ?assertMatch(#{R8f := #shard{node = 'n1'}}, Map).
+
+uneven_overlap(_) ->
+    R04 = [16#00000000, 16#4fffffff],
+    R26 = [16#20000000, 16#6fffffff],
+    R58 = [16#50000000, 16#8fffffff],
+    R9f = [16#90000000, 16#ffffffff],
+    Shards = [
+        #shard{node = 'n1', range = R04},
+        #shard{node = 'n1', range = R58},
+        #shard{node = 'n1', range = R9f},
+        #shard{node = 'n2', range = R26}
+    ],
 
-target_not_in_shard_map() ->
-    ?_test(begin
-        R0f = [16#00000000, 16#ffffffff],
-        Name = <<"shards/00000000-ffffffff/d.1551893552">>,
-        Shards = [
-            #shard{name = Name, node = 'n1', range = R0f},
-            #shard{name = Name, node = 'n2', range = R0f}
-        ],
-        meck:expect(mem3, shards, 1, Shards),
-        Src = #shard{name = Name, node = 'n1'},
-        Tgt = #shard{name = Name, node = 'n3'},
-        Map = targets_map(Src, Tgt),
-        ?assertEqual(1, map_size(Map)),
-        ?assertMatch(#{R0f := #shard{name = Name, node = 'n3'}}, Map)
-    end).
+    meck:expect(mem3, shards, 1, Shards),
+
+    SrcName = <<"shards/20000000-6fffffff/d.1551893552">>,
+    TgtName = <<"shards/20000000-6fffffff/d.1551893552">>,
+
+    Src = #shard{name = SrcName, node = 'n2'},
+    Tgt = #shard{name = TgtName, node = 'n1'},
+    Map = targets_map(Src, Tgt),
+    ?assertEqual(2, map_size(Map)),
+    ?assertMatch(#{R04 := #shard{node = 'n1'}}, Map),
+    ?assertMatch(#{R58 := #shard{node = 'n1'}}, Map).
+
+target_not_in_shard_map(_) ->
+    R0f = [16#00000000, 16#ffffffff],
+    Name = <<"shards/00000000-ffffffff/d.1551893552">>,
+    Shards = [
+        #shard{name = Name, node = 'n1', range = R0f},
+        #shard{name = Name, node = 'n2', range = R0f}
+    ],
+    meck:expect(mem3, shards, 1, Shards),
+    Src = #shard{name = Name, node = 'n1'},
+    Tgt = #shard{name = Name, node = 'n3'},
+    Map = targets_map(Src, Tgt),
+    ?assertEqual(1, map_size(Map)),
+    ?assertMatch(#{R0f := #shard{name = Name, node = 'n3'}}, Map).
 
 -endif.
diff --git a/src/mem3/test/eunit/mem3_bdu_test.erl b/src/mem3/test/eunit/mem3_bdu_test.erl
index 849295691..a0ed0004a 100644
--- a/src/mem3/test/eunit/mem3_bdu_test.erl
+++ b/src/mem3/test/eunit/mem3_bdu_test.erl
@@ -15,8 +15,6 @@
 -include_lib("couch/include/couch_eunit.hrl").
 -include_lib("couch/include/couch_db.hrl").
 
--define(TDEF_FE(Name), fun(Arg) -> {atom_to_list(Name), ?_test(Name(Arg))} end).
-
 -define(USER, "mem3_bdu_test_admin").
 -define(PASS, "pass").
 -define(AUTH, {basic_auth, {?USER, ?PASS}}).
diff --git a/src/mem3/test/eunit/mem3_distribution_test.erl b/src/mem3/test/eunit/mem3_distribution_test.erl
index d442a47b3..6182ace71 100644
--- a/src/mem3/test/eunit/mem3_distribution_test.erl
+++ b/src/mem3/test/eunit/mem3_distribution_test.erl
@@ -14,7 +14,6 @@
 
 -include_lib("couch/include/couch_eunit.hrl").
 
--define(TDEF_FE(Name), fun(Arg) -> {atom_to_list(Name), ?_test(Name(Arg))} end).
 -define(MOD, mem3_distribution).
 
 setup() ->