Mercurial > repos > public > sbplib_julia
annotate test/runtests.jl @ 727:95b207729b7a feature/selectable_tests
Add some todos to runtest.jl
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Wed, 17 Mar 2021 20:34:18 +0100 |
parents | 1c5600a711ae |
children | 1ea81e106482 |
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) |
717
1c5600a711ae
Allow multiple filters
Jonatan Werpers <jonatan@werpers.com>
parents:
713
diff
changeset
|
7 run_testfiles(path, globs) |
709
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
8 |
711
df88aee35bb9
Switch to _test.jl suffix
Jonatan Werpers <jonatan@werpers.com>
parents:
709
diff
changeset
|
9 Find and run all files with filenames ending with "_test.jl". If `path` is omitted the test folder is assumed. |
717
1c5600a711ae
Allow multiple filters
Jonatan Werpers <jonatan@werpers.com>
parents:
713
diff
changeset
|
10 The argument `globs` can optionally be supplied to filter which test files are run. |
709
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) |
717
1c5600a711ae
Allow multiple filters
Jonatan Werpers <jonatan@werpers.com>
parents:
713
diff
changeset
|
14 globs = [fn"./*"] |
709
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
15 else |
717
1c5600a711ae
Allow multiple filters
Jonatan Werpers <jonatan@werpers.com>
parents:
713
diff
changeset
|
16 globs = Glob.FilenameMatch.("./".*args) |
709
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 |
717
1c5600a711ae
Allow multiple filters
Jonatan Werpers <jonatan@werpers.com>
parents:
713
diff
changeset
|
19 run_testfiles(".", globs) |
709
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 |
717
1c5600a711ae
Allow multiple filters
Jonatan Werpers <jonatan@werpers.com>
parents:
713
diff
changeset
|
22 function run_testfiles(path, globs) |
709
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
23 for name ∈ readdir(path) |
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
24 filepath = joinpath(path, name) |
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
25 |
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
26 if isdir(filepath) |
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
27 @testset "$name" begin |
717
1c5600a711ae
Allow multiple filters
Jonatan Werpers <jonatan@werpers.com>
parents:
713
diff
changeset
|
28 run_testfiles(filepath, globs) |
709
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
29 end |
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 |
717
1c5600a711ae
Allow multiple filters
Jonatan Werpers <jonatan@werpers.com>
parents:
713
diff
changeset
|
32 if endswith(name, "_test.jl") && any(occursin.(globs, filepath)) |
709
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
33 printstyled("Running "; bold=true, color=:green) |
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
34 println(filepath) |
713
be648c6d6686
Wrap each file in a testset
Jonatan Werpers <jonatan@werpers.com>
parents:
711
diff
changeset
|
35 @testset "$name" begin |
be648c6d6686
Wrap each file in a testset
Jonatan Werpers <jonatan@werpers.com>
parents:
711
diff
changeset
|
36 include(filepath) |
be648c6d6686
Wrap each file in a testset
Jonatan Werpers <jonatan@werpers.com>
parents:
711
diff
changeset
|
37 end |
709
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
38 end |
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
39 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
|
40 end |
709
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
41 |
717
1c5600a711ae
Allow multiple filters
Jonatan Werpers <jonatan@werpers.com>
parents:
713
diff
changeset
|
42 testsetname = isempty(ARGS) ? "Sbplib.jl" : join(ARGS, ", ") |
709
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
43 |
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
44 @testset "$testsetname" begin |
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
45 run_testfiles(ARGS) |
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
46 end |
727
95b207729b7a
Add some todos to runtest.jl
Jonatan Werpers <jonatan@werpers.com>
parents:
717
diff
changeset
|
47 |
95b207729b7a
Add some todos to runtest.jl
Jonatan Werpers <jonatan@werpers.com>
parents:
717
diff
changeset
|
48 # Make it more clear that a glob was used in the test set name. |
95b207729b7a
Add some todos to runtest.jl
Jonatan Werpers <jonatan@werpers.com>
parents:
717
diff
changeset
|
49 # Make standalone files fail the same way when run together and alone |
95b207729b7a
Add some todos to runtest.jl
Jonatan Werpers <jonatan@werpers.com>
parents:
717
diff
changeset
|
50 # Add a timer for each file run |