Title says all!
Is it possible to manually mark tests as incomplete or skipped in ExUnit, in the middle of a test case?
Title says all!
Is it possible to manually mark tests as incomplete or skipped in ExUnit, in the middle of a test case?
Hmmm but I’m looking to skip something on the fly, this requires a definition beforehand.
I’m talking about skipping a test if a condition is met inside.
Context: I’m building something that does snapshot tests like Jest (JS) has, and want to mark a test incomplete the first run.
I do not know Jest, and I think others don’t do as well.
Can you please elaborate how this snapshot testing works from a users perspective?
Snapshot testing takes a string which you pass to an assertion function, and looks for an existing “snapshot” file. If there’s no snapshot file, a new one is stored. If there is an existing snapshot file from a previous run, the string you’ve asserted on is compared to the snapshot for regressions. This is also known as characterization testing.
The Jest docs have a whole article on it: http://facebook.github.io/jest/docs/en/snapshot-testing.html#snapshot-testing-with-jest
So, I’d like to mark the tests as incomplete on the first one, since nothing’s really tested yet then.
Maybe you can use a custom test macro to be able to mark the test with the status you want, like stream_data does here:
I prefer property testing too, but yeah it would be easy to write something like assert_prior <expr>
or so that talks via DETS to a snapshot file.
I was searching for some information regarding ExUnit and snapshot tests and I have encountered this thread. In case anyone is interested I have created my own package for snapshot tests and it is available here: https://github.com/dczajkowski/snapshy. Extensive documentation, tests etc. are coming, but would like to get your feedback on it
P.S. It is my second ever project in Elixir and first ever package, so I’d really like to hear your thoughts on it
You can also mark a test as skipped inside the setup block.
setup context do
if check_for_something do
{:ok, skip: true}
else
:ok
end
end
For those landing from Google, you can skip any test by annotating it with a :skip
tag:
@tag :skip
test "not implemented yet"
Seems it does not work anymore, just gave it a try. Is there a new way of ignoring tests dynamically on the setup?
It still works for me: ExUnit pending tests - #5 by stratigos
Try adding a bit of text after the skip, as per the above link.