Skip to content
This repository was archived by the owner on Dec 23, 2022. It is now read-only.

Commit 61e9c78

Browse files
committed
nitunit: do not write empty testsuites in the xml file
Signed-off-by: Jean Privat <[email protected]>
1 parent a3bc9d6 commit 61e9c78

8 files changed

+19
-15
lines changed

src/nitunit.nit

+9-5
Original file line numberDiff line numberDiff line change
@@ -84,19 +84,23 @@ for a in args do
8484
end
8585
# Try to load the file as a markdown document
8686
var mdoc = modelbuilder.load_markdown(a)
87-
page.add modelbuilder.test_mdoc(mdoc)
87+
var ts = modelbuilder.test_mdoc(mdoc)
88+
if not ts.children.is_empty then page.add ts
8889
end
8990

9091
for a in module_files do
9192
var g = modelbuilder.identify_group(a)
9293
if g == null then continue
93-
page.add modelbuilder.test_group(g)
94+
var ts = modelbuilder.test_group(g)
95+
if not ts.children.is_empty then page.add ts
9496
end
9597

9698
for m in mmodules do
97-
page.add modelbuilder.test_markdown(m)
98-
var ts = modelbuilder.test_unit(m)
99-
if ts != null then page.add ts
99+
var ts
100+
ts = modelbuilder.test_markdown(m)
101+
if not ts.children.is_empty then page.add ts
102+
ts = modelbuilder.test_unit(m)
103+
if ts != null and not ts.children.is_empty then page.add ts
100104
end
101105

102106
var file = toolcontext.opt_output.value

tests/sav/nitunit_args1.res

+1-1
Original file line numberDiff line numberDiff line change
@@ -35,5 +35,5 @@ Test suites: Classes: 1; Test Cases: 3; Failures: 1
3535
</system-out></testcase><testcase classname="nitunit.test_nitunit.X" name="foo1" time="0.0"><failure message="Syntax Error: unexpected operator &#39;!&#39;."></failure><system-out>assert !@#$%^&amp;*()
3636
</system-out></testcase><testcase classname="nitunit.test_nitunit.X" name="foo2" time="0.0"><system-err></system-err><system-out>var x = new X
3737
assert x.foo2
38-
</system-out></testcase></testsuite><testsuite package="test_test_nitunit::test_test_nitunit"></testsuite><testsuite package="test_test_nitunit"><testcase classname="nitunit.test_test_nitunit.TestX" name="test_foo" time="0.0"><system-err></system-err></testcase><testcase classname="nitunit.test_test_nitunit.TestX" name="test_foo1" time="0.0"><error message="Runtime Error in file nitunit.out&#47;gen_test_test_nitunit.nit">Runtime error: Assert failed (test_test_nitunit.nit:38)
38+
</system-out></testcase></testsuite><testsuite package="test_test_nitunit"><testcase classname="nitunit.test_test_nitunit.TestX" name="test_foo" time="0.0"><system-err></system-err></testcase><testcase classname="nitunit.test_test_nitunit.TestX" name="test_foo1" time="0.0"><error message="Runtime Error in file nitunit.out&#47;gen_test_test_nitunit.nit">Runtime error: Assert failed (test_test_nitunit.nit:38)
3939
</error></testcase><testcase classname="nitunit.test_test_nitunit.TestX" name="test_foo2" time="0.0"><system-err></system-err></testcase></testsuite></testsuites>

tests/sav/nitunit_args10.res

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,4 @@
55
Docunits: Entities: 4; Documented ones: 0; With nitunits: 0
66
Test suites: Classes: 1; Test Cases: 2; Failures: 0
77
[SUCCESS] All 2 tests passed.
8-
<testsuites><testsuite package="test_nitunit5::test_nitunit5"></testsuite><testsuite package="test_nitunit5"><testcase classname="nitunit.test_nitunit5.TestNitunit5" name="test_path_is_set" time="0.0"><system-err></system-err></testcase><testcase classname="nitunit.test_nitunit5.TestNitunit5" name="test_path_is_suite_path" time="0.0"><system-err></system-err></testcase></testsuite></testsuites>
8+
<testsuites><testsuite package="test_nitunit5"><testcase classname="nitunit.test_nitunit5.TestNitunit5" name="test_path_is_set" time="0.0"><system-err></system-err></testcase><testcase classname="nitunit.test_nitunit5.TestNitunit5" name="test_path_is_suite_path" time="0.0"><system-err></system-err></testcase></testsuite></testsuites>

tests/sav/nitunit_args11.res

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,4 @@ Docunits: Entities: 5; Documented ones: 0; With nitunits: 0
1313
Test suites: Classes: 1; Test Cases: 3; Failures: 3
1414
[FAILURE] 3/3 tests failed.
1515
`nitunit.out` is not removed for investigation.
16-
<testsuites><testsuite package="test_nitunit6::test_nitunit6"></testsuite><testsuite package="test_nitunit6"><testcase classname="nitunit.test_nitunit6.TestNitunit6" name="test_foo" time="0.0"><failure message="Nitunit Error: before module test failed"></failure></testcase></testsuite></testsuites>
16+
<testsuites><testsuite package="test_nitunit6"><testcase classname="nitunit.test_nitunit6.TestNitunit6" name="test_foo" time="0.0"><failure message="Nitunit Error: before module test failed"></failure></testcase></testsuite></testsuites>

tests/sav/nitunit_args12.res

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,4 @@ Docunits: Entities: 5; Documented ones: 0; With nitunits: 0
1111
Test suites: Classes: 1; Test Cases: 3; Failures: 1
1212
[FAILURE] 1/3 tests failed.
1313
`nitunit.out` is not removed for investigation.
14-
<testsuites><testsuite package="test_nitunit7::test_nitunit7"></testsuite><testsuite package="test_nitunit7"><testcase classname="nitunit.test_nitunit7.TestNitunit7" name="test_foo" time="0.0"><system-err></system-err></testcase></testsuite></testsuites>
14+
<testsuites><testsuite package="test_nitunit7"><testcase classname="nitunit.test_nitunit7.TestNitunit7" name="test_foo" time="0.0"><system-err></system-err></testcase></testsuite></testsuites>

tests/sav/nitunit_args13.res

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,4 @@ Docunits: Entities: 3; Documented ones: 0; With nitunits: 0
1111
Test suites: Classes: 1; Test Cases: 3; Failures: 1
1212
[FAILURE] 1/3 tests failed.
1313
`nitunit.out` is not removed for investigation.
14-
<testsuites><testsuite package="test_nitunit8::test_nitunit8"></testsuite><testsuite package="test_nitunit8"><testcase classname="nitunit.test_nitunit8.TestNitunit8" name="test_foo" time="0.0"><system-err></system-err></testcase></testsuite></testsuites>
14+
<testsuites><testsuite package="test_nitunit8"><testcase classname="nitunit.test_nitunit8.TestNitunit8" name="test_foo" time="0.0"><system-err></system-err></testcase></testsuite></testsuites>

tests/sav/nitunit_args14.res

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,4 @@ Docunits: Entities: 7; Documented ones: 0; With nitunits: 0
1515
Test suites: Classes: 1; Test Cases: 7; Failures: 1
1616
[FAILURE] 1/7 tests failed.
1717
`nitunit.out` is not removed for investigation.
18-
<testsuites><testsuite package="test_nitunit11::test_nitunit11"></testsuite><testsuite package="test_nitunit11"><testcase classname="nitunit.test_nitunit11.TestNitunit11" name="test_baz" time="0.0"><system-err></system-err></testcase></testsuite></testsuites>
18+
<testsuites><testsuite package="test_nitunit11"><testcase classname="nitunit.test_nitunit11.TestNitunit11" name="test_baz" time="0.0"><system-err></system-err></testcase></testsuite></testsuites>

tests/sav/nitunit_args9.res

+4-4
Original file line numberDiff line numberDiff line change
@@ -59,11 +59,11 @@ Docunits: Entities: 22; Documented ones: 0; With nitunits: 0
5959
Test suites: Classes: 3; Test Cases: 8; Failures: 7
6060
[FAILURE] 7/8 tests failed.
6161
`nitunit.out` is not removed for investigation.
62-
<testsuites><testsuite package="test_nitunit4&gt;"></testsuite><testsuite package="test_nitunit4::nitunit4"></testsuite><testsuite package="test_nitunit4::test_bad_comp"></testsuite><testsuite package="test_bad_comp"><testcase classname="nitunit.test_nitunit4.TestSuiteBadComp" name="test_good" time="0.0"><failure message="Compilation Error">test_nitunit4&#47;test_bad_comp.nit:25,10--19: Error: method or variable `bad_method` unknown in `TestSuiteBadComp`.
62+
<testsuites><testsuite package="test_bad_comp"><testcase classname="nitunit.test_nitunit4.TestSuiteBadComp" name="test_good" time="0.0"><failure message="Compilation Error">test_nitunit4&#47;test_bad_comp.nit:25,10--19: Error: method or variable `bad_method` unknown in `TestSuiteBadComp`.
6363
</failure></testcase><testcase classname="nitunit.test_nitunit4.TestSuiteBadComp" name="test_bad" time="0.0"><failure message="Compilation Error">test_nitunit4&#47;test_bad_comp.nit:25,10--19: Error: method or variable `bad_method` unknown in `TestSuiteBadComp`.
64-
</failure></testcase></testsuite><testsuite package="test_nitunit4::test_bad_comp2"></testsuite><testsuite package="test_bad_comp2"><testcase classname="nitunit.test_nitunit4.TestSuiteBadComp" name="test_good" time="0.0"><failure message="Compilation Error">nitunit.out&#47;gen_test_bad_comp2.nit:11,10--17: Error: expected 1 argument(s) for `test_bad(param: Bool)`; got 0. See introduction at `test_nitunit4::TestSuiteBadComp::test_bad`.
64+
</failure></testcase></testsuite><testsuite package="test_bad_comp2"><testcase classname="nitunit.test_nitunit4.TestSuiteBadComp" name="test_good" time="0.0"><failure message="Compilation Error">nitunit.out&#47;gen_test_bad_comp2.nit:11,10--17: Error: expected 1 argument(s) for `test_bad(param: Bool)`; got 0. See introduction at `test_nitunit4::TestSuiteBadComp::test_bad`.
6565
</failure></testcase><testcase classname="nitunit.test_nitunit4.TestSuiteBadComp" name="test_bad" time="0.0"><failure message="Compilation Error">nitunit.out&#47;gen_test_bad_comp2.nit:11,10--17: Error: expected 1 argument(s) for `test_bad(param: Bool)`; got 0. See introduction at `test_nitunit4::TestSuiteBadComp::test_bad`.
66-
</failure></testcase></testsuite><testsuite package="test_nitunit4::test_nitunit4"></testsuite><testsuite package="test_nitunit4"><testcase classname="nitunit.test_nitunit4.TestTestSuite" name="test_foo" time="0.0"><error message="Runtime Error in file nitunit.out&#47;gen_test_nitunit4.nit">Before Test
66+
</failure></testcase></testsuite><testsuite package="test_nitunit4"><testcase classname="nitunit.test_nitunit4.TestTestSuite" name="test_foo" time="0.0"><error message="Runtime Error in file nitunit.out&#47;gen_test_nitunit4.nit">Before Test
6767
Tested method
6868
After Test
6969
Runtime assert: &lt;TestTestSuite&gt;.before
@@ -82,4 +82,4 @@ After Test
8282
</error></testcase><testcase classname="nitunit.test_nitunit4.TestTestSuite" name="test_sav_conflict" time="0.0"><error message="Conflicting expected output: test_nitunit4&#47;test_nitunit4.sav&#47;test_sav_conflict.res, test_nitunit4&#47;sav&#47;test_sav_conflict.res and test_nitunit4&#47;test_sav_conflict.res all exist">Before Test
8383
Tested method
8484
After Test
85-
</error></testcase></testsuite><testsuite package="test_nitunit4::test_nitunit4_base"></testsuite></testsuites>
85+
</error></testcase></testsuite></testsuites>

0 commit comments

Comments
 (0)