4.87. kink/test/COLLECT_FROM_FILE¶
Collects tests from files.
Example:
:TEST.require_from('kink/test/')
:COLLECT_FROM_FILE.require_from('kink/test/')
:Tests <- TEST.collect_in{
# Loads tests in test/kink/**/*_test.kn
COLLECT_FROM_FILE.under('test/kink/')
# Loads tests in ad-hoc.kn
COLLECT_FROM_FILE.under('ad-hoc.kn')
}
Tests.each{(:T) T.run }
COLLECT_FROM_FILE is used by TEST_TOOL to load tests.
4.87.1. COLLECT_FROM_FILE.under(Path)¶
`under` collects tests under the path.
Preconditions:
• `under` must be called within invocation of TEST.collect_in.
• `Path` must be a str.
If `Path` is the path of file, `under` reads and compiles the file, and runs the program.
If `Path` is the path of a directory, `under` reads, compiles, and runs all the files named as *_test.kn under the directory and its subdirectories recursively. The name pattern matching is done case-insensitively. Thus, for example, a file named FOO_TEST.KN is also run.
`under` reads program files by UTF-8 charset.
In case of an IO error, or a compile error, `under` raises an exception. If a test program raises an exception, `under` justs propagates it.