NarrativeTest is a Julia library for functional testing, which lets you write the test suite in the narrative form. It permits you to describe the behavior of software components in the Markdown format, and then extract, execute, and validate any embedded test code.
Install the package using the Julia package manager:
julia> using Pkg
julia> Pkg.add("NarrativeTest")
Add NarrativeTest to your package as a test-specific
dependency.
Then create the following test/runtests.jl
:
using NarrativeTest
NarrativeTest.runtests()
If you are already relying on the standard Test
library, you can add
NarrativeTest as a nested test set:
using Test, NarrativeTest
@testset "MyPackage" begin
…
NarrativeTest.testset()
…
end
Write the test suite in Markdown and save it in the test
directory. Place
the test code in Markdown code blocks, and use comments #-> …
and #=> … =#
to indicate the expected output. For example:
# Sample test suite
Verify that the expression evaluates to the expected value:
6(3+4) #-> 42
Check if the code produces the expected output:
print("Hello ")
print("World!")
#-> Hello World!
Abbreviate the output with ellipsis:
collect('a':'z')
#-> ['a', 'b', …, 'z']
display(collect('a':'z'))
#=>
26-element Array{Char,1}:
'a'
'b'
⋮
'z'
=#
To test your package, run:
$ julia ./test/runtests.jl
For more information, see the Documentation.