aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/README
diff options
context:
space:
mode:
Diffstat (limited to 'test/README')
-rw-r--r--test/README28
1 files changed, 28 insertions, 0 deletions
diff --git a/test/README b/test/README
index 7b2e96d4..43656a35 100644
--- a/test/README
+++ b/test/README
@@ -6,6 +6,19 @@ When fixing bugs or enhancing notmuch, you are strongly encouraged to
add tests in this directory to cover what you are trying to fix or
enhance.
+Prerequisites
+-------------
+Some tests require external dependencies to run. Without them, they
+will be skipped, or (rarely) marked failed. Please install these, so
+that you know if you break anything.
+
+ - dtach(1)
+ - emacs(1)
+ - emacsclient(1)
+ - gdb(1)
+ - gpg(1)
+ - python(1)
+
Running Tests
-------------
The easiest way to run tests is to say "make test", (or simply run the
@@ -56,6 +69,13 @@ can be specified as follows:
make test OPTIONS="--verbose"
+You can choose an emacs binary to run the tests in one of the
+following ways.
+
+ TEST_EMACS=my-special-emacs make test
+ TEST_EMACS=my-special-emacs ./emacs
+ make test TEST_EMACS=my-special-emacs
+
Skipping Tests
--------------
If, for any reason, you need to skip one or more tests, you can do so
@@ -182,6 +202,14 @@ library for your script to use.
tests that may run in the same Emacs instance. Use `let' instead
so the scope of the changed variables is limited to a single test.
+ test_emacs_expect_t <emacs-lisp-expressions>
+
+ This function executes the provided emacs lisp script within
+ emacs in a manner similar to 'test_emacs'. The expressions should
+ return the value `t' to indicate that the test has passed. If the
+ test does not return `t' then it is considered failed and all data
+ returned by the test is reported to the tester.
+
test_done
Your test script must have test_done at the end. Its purpose