Provide a clojure.test function to run a single test case with fixtures

Description

clojure.test test cases are functions and can be invoked directly. However, in the case that the test relies on fixtures, this does not work. It should be possible to run a single test case with all fixtures applied.

Approach: Add new test-vars that takes a collection of vars to run.

Patch: code: clj-866-test-vars.patch, test: CLJ-866-test.patch

Screened by: Alex Miller

Environment

None

Attachments

2

Activity

Show:

Alex Miller August 8, 2013 at 8:20 AM

New version of the patch incorporating feedback has been attached, switching to Vetted so someone can take a look again.

gfredericks August 3, 2013 at 9:35 PM

Attached patch with a test, which should apply cleanly on top of Anthony's.

Also made sure a mostly-equivalent version (that used test-var) was failing without the new function.

Alex Miller May 4, 2013 at 3:36 PM

This is highly useful. Could you add a test to the patch?

Anthony Grimes October 23, 2012 at 12:17 AM

I just added clj-866-test-vars.patch (22/Oct/12 6:09PM).

I had to implement this hackishly in Leiningen a few days ago, so I'm very excited to get this functionality in clojure.test itself.

This patch adds a test-vars function that solves this problem (and is more general). You can test as many vars as you want with it, with fixtures. It works by grouping vars passed by their namespace and then running them all with appropriate fixtures applied. Being able to run a single test isn't the problem here, being able to run only specific tests is. If we wrote a function to run one test with fixtures but we actually needed to run several, just not all tests, we'd end up having to run once-fixtures more than once which is wasteful. I think test-vars is a good solution that solves both this problem and the one I just mentioned.

Completed

Details

Assignee

Reporter

Approval

Ok

Patch

Code and Test

Priority

Fix versions

Created October 27, 2011 at 2:57 PM
Updated November 23, 2013 at 1:06 AM
Resolved November 23, 2013 at 1:06 AM