Skip to content

Commit d26a3ae

Browse files
Before each (#6)
1 parent b7811fa commit d26a3ae

File tree

3 files changed

+44
-1
lines changed

3 files changed

+44
-1
lines changed

nuunit.nu

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,12 @@ export def discover-tests [module testImportScript] {
4949
name: $it.item
5050
exec: $'($testImportScript)
5151
try {
52-
($it.item)
52+
if (scope commands | where name == "before each" | is-empty) {
53+
null
54+
} else {
55+
before each
56+
}
57+
| ($it.item)
5358
} catch {|err|
5459
print -e $err.debug
5560
exit 1

test-spec.nu

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,14 @@ export def "test can run via shebang" [] {
9898
| verify json results
9999
}
100100

101+
export def "test that the before each passes context to a test" [] {
102+
use tests/test-spec-with-before-each.nu "verify json results"
103+
let specFile = "tests/test-spec-with-before-each.nu"
104+
105+
run-test-spec $specFile
106+
| verify json results
107+
}
108+
101109
def run-test-spec [specFile] {
102110
(^$nu.current-exe --no-config-file nuunit.nu --test-spec-module-name $specFile --as-json)
103111
| from json

tests/test-spec-with-before-each.nu

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
2+
export def "before each" [] {
3+
let context = { some: stuff, that: is, useful: for, multiple: tests }
4+
$context
5+
}
6+
7+
export def "test that before each context gets passed" [] {
8+
let actual = $in
9+
let expected = { some: stuff, that: is, useful: for, multiple: tests }
10+
use std assert
11+
12+
assert equal $expected $actual
13+
}
14+
15+
export def "test that before each context gets passed to multiple tests" [] {
16+
let actual = $in
17+
let expected = { some: stuff, that: is, useful: for, multiple: tests }
18+
use std assert
19+
20+
assert equal $expected $actual
21+
}
22+
23+
export def "verify json results" [] {
24+
let results = $in
25+
use std assert
26+
27+
print ($results | get stdout)
28+
assert equal 0 ($results | get exit_code | first)
29+
}
30+

0 commit comments

Comments
 (0)