diff options
author | Thiago de Arruda <tpadilha84@gmail.com> | 2015-03-17 08:48:03 -0300 |
---|---|---|
committer | Thiago de Arruda <tpadilha84@gmail.com> | 2015-03-24 12:46:15 -0300 |
commit | 1ee7ca7bc0739526bf07ddc0cfc9fbbd18523591 (patch) | |
tree | 751ad22670cb9b40329a84773e783ba3b8c357f3 | |
parent | 47e90ea1c5077bf64dcb729c7fc6ccaaea142c5f (diff) | |
download | rneovim-1ee7ca7bc0739526bf07ddc0cfc9fbbd18523591.tar.gz rneovim-1ee7ca7bc0739526bf07ddc0cfc9fbbd18523591.tar.bz2 rneovim-1ee7ca7bc0739526bf07ddc0cfc9fbbd18523591.zip |
test: Improve functional test debuggability and efficiency
- Read TEST_TAG/TEST_FILTER env vars from cmake/RunTests.cmake. Setting these
environment variables will pass --tags/--filter to busted, which can used to
filter which tests are executed.
- Remove calls to nvim msgpack-rpc API outside tests. This removes the
requirement of having a static `clear` call in test/functional/helpers.lua
- Use the new busted command-line option "--lazy" to ensure the setup/teardown
hooks are only executed when a suite runs at least one test.
Now its possible to run/debug a single test like this:
```sh
TEST_FILTER='some test string' make test
```
Which will only run tests containing "some test string" in the title.
Another option is:
```sh
TEST_TAG=some-tag make test
```
After putting #some-tag into the test title. This also improves debugging
experience because there will be no unnecessary gdbserver instances whe GDB=1 is
passed.
-rw-r--r-- | cmake/RunTests.cmake | 12 | ||||
-rw-r--r-- | test/functional/autocmd/tabnew_spec.lua | 2 | ||||
-rw-r--r-- | test/functional/helpers.lua | 2 | ||||
-rw-r--r-- | test/functional/job/job_spec.lua | 8 |
4 files changed, 17 insertions, 7 deletions
diff --git a/cmake/RunTests.cmake b/cmake/RunTests.cmake index 6262cbc383..0858ea24ac 100644 --- a/cmake/RunTests.cmake +++ b/cmake/RunTests.cmake @@ -17,9 +17,17 @@ if(BUSTED_OUTPUT_TYPE STREQUAL junit) set(EXTRA_ARGS OUTPUT_FILE ${BUILD_DIR}/${TEST_TYPE}test-junit.xml) endif() +if(DEFINED ENV{TEST_TAG}) + set(TEST_TAG "--tags=$ENV{TEST_TAG}") +endif() + +if(DEFINED ENV{TEST_FILTER}) + set(TEST_TAG "--filter=$ENV{TEST_FILTER}") +endif() + execute_process( - COMMAND ${BUSTED_PRG} -v -o ${BUSTED_OUTPUT_TYPE} - --helper=${TEST_DIR}/${TEST_TYPE}/preload.lua + COMMAND ${BUSTED_PRG} ${TEST_TAG} ${TEST_FILTER} -v -o ${BUSTED_OUTPUT_TYPE} + --lazy --helper=${TEST_DIR}/${TEST_TYPE}/preload.lua --lpath=${BUILD_DIR}/?.lua ${TEST_PATH} WORKING_DIRECTORY ${WORKING_DIR} ERROR_VARIABLE err diff --git a/test/functional/autocmd/tabnew_spec.lua b/test/functional/autocmd/tabnew_spec.lua index 970ca19726..d80644cd92 100644 --- a/test/functional/autocmd/tabnew_spec.lua +++ b/test/functional/autocmd/tabnew_spec.lua @@ -4,8 +4,8 @@ local clear, nvim, buffer, curbuf, curwin, eq, neq, ok = helpers.eq, helpers.neq, helpers.ok describe('TabNew', function() + setup(clear) describe('au TabNew', function() - clear() describe('with * as <afile>', function() it('matches when opening any new tab', function() nvim('command', 'au! TabNew * echom "tabnew:".tabpagenr().":".bufnr("")') diff --git a/test/functional/helpers.lua b/test/functional/helpers.lua index cc5d019863..393b42dda5 100644 --- a/test/functional/helpers.lua +++ b/test/functional/helpers.lua @@ -276,8 +276,6 @@ local function expect(contents) return eq(dedent(contents), curbuf_contents()) end -clear() - return { clear = clear, spawn = spawn, diff --git a/test/functional/job/job_spec.lua b/test/functional/job/job_spec.lua index 0d561ec4d7..c74ae047c5 100644 --- a/test/functional/job/job_spec.lua +++ b/test/functional/job/job_spec.lua @@ -6,10 +6,14 @@ local clear, nvim, eq, neq, ok, expect, eval, next_message, run, stop, session helpers.stop, helpers.session local nvim_dir, insert = helpers.nvim_dir, helpers.insert -local channel = nvim('get_api_info')[1] describe('jobs', function() - before_each(clear) + local channel + + before_each(function() + clear() + channel = nvim('get_api_info')[1] + end) -- Creates the string to make an autocmd to notify us. local notify_str = function(expr1, expr2) |