Mercurial > repos > public > sbplib_julia
annotate test/runtests.jl @ 709:48a61e085e60 feature/selectable_tests
Add function for selecting tests
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Sat, 20 Feb 2021 20:31:08 +0100 |
parents | a79d7b3209c9 |
children | df88aee35bb9 |
rev | line source |
---|---|
333
01b851161018
Start converting to one package by moving all the files to their correct location
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
1 using Test |
709
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
2 using Glob |
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
3 |
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
4 """ |
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
5 run_testfiles() |
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
6 run_testfiles(path) |
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
7 run_testfiles(path, glob) |
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
8 |
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
9 Find and run all files with filenames starting with "test". If `path` is omitted the test folder is assumed. |
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
10 The argument `glob` can optionally be supplied to filter which test files are run. |
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
11 """ |
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
12 function run_testfiles(args) |
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
13 if isempty(args) |
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
14 glob = fn"./*" |
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
15 else |
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
16 glob = Glob.FilenameMatch("./"*args[1]) #TBD: Allow multiple filters? |
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
17 end |
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
18 |
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
19 run_testfiles(".", glob) |
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
20 end |
333
01b851161018
Start converting to one package by moving all the files to their correct location
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
21 |
709
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
22 # TODO change from prefix `test` to suffix `_test` for testfiles |
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
23 function run_testfiles(path, glob) |
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
24 for name ∈ readdir(path) |
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
25 filepath = joinpath(path, name) |
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
26 |
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
27 if isdir(filepath) |
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
28 @testset "$name" begin |
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
29 run_testfiles(filepath, glob) |
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
30 end |
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
31 end |
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
32 |
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
33 if !endswith(name, ".jl") ## TODO combine this into test below when switching to suffix |
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
34 continue |
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
35 end |
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
36 |
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
37 if startswith(name, "test") && occursin(glob, filepath) |
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
38 printstyled("Running "; bold=true, color=:green) |
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
39 println(filepath) |
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
40 include(filepath) |
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
41 end |
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
42 end |
333
01b851161018
Start converting to one package by moving all the files to their correct location
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
43 end |
709
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
44 |
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
45 testsetname = isempty(ARGS) ? "Sbplib.jl" : ARGS[1] |
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
46 |
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
47 @testset "$testsetname" begin |
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
48 run_testfiles(ARGS) |
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
49 end |