view test/runtests.jl @ 877:dd2ab001a7b6 feature/equidistant_grid/refine

Implement refine function, move exports to the top of the file, change location of constuctors. The constructors were changed have only one inner constructor and simpler outer constructors.
author Jonatan Werpers <jonatan@werpers.com>
date Mon, 14 Feb 2022 09:39:58 +0100
parents e279c53eb647
children f88b2117dc69 e7176fb09e98
line wrap: on
line source

using Test
using Glob

"""
    run_testfiles()
    run_testfiles(path, globs)

Find and run all files with filenames ending with "_test.jl". If `path` is omitted the test folder is assumed.
The argument `globs` can optionally be supplied to filter which test files are run.
"""
function run_testfiles(args)
    if isempty(args)
        globs = [fn"./*"]
    else
        globs = Glob.FilenameMatch.("./".*args)
    end

    run_testfiles(".", globs)
end

function  run_testfiles(path, globs)
    for name ∈ readdir(path)
        filepath = joinpath(path, name)

        if isdir(filepath)
            @testset "$name" begin
                run_testfiles(filepath, globs)
            end
        end

        if endswith(name, "_test.jl") && any(occursin.(globs, filepath))
            printstyled("Running "; bold=true, color=:green)
            print(filepath)

            t_start = time()
            @testset "$name" begin
                include(filepath)
            end
            t_end = time()

            Δt = t_end - t_start
            printstyled(" ($(round(Δt, digits=2)) s)"; color=:light_black)
            println()
        end
    end
end

testsetname = isempty(ARGS) ? "Sbplib.jl" : "["*join(ARGS, ", ")*"]"

@testset "$testsetname" begin
    run_testfiles(ARGS)
end