rally/tests/unit/common/test_junit.py
Hiroki Aramaki 4389a97af9 Add failure tag to JUnit report
When generate JUnit report, add <failure/> tag to failed test case.
Criterion and detail from sla is also added as type and message with failure tag.

Closes-Bug: #1470286

Change-Id: I5def62501b419317eef18045e85626db692628b1
2015-07-07 15:50:35 +09:00

47 lines
1.8 KiB
Python

# Copyright 2015: eNovance
# All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
from rally.common import junit
from tests.unit import test
class JUnitTestCase(test.TestCase):
def test_basic_testsuite(self):
j = junit.JUnit("test")
j.add_test("Foo.Bar", 3.14, outcome=junit.JUnit.SUCCESS)
j.add_test("Foo.Baz", 13.37, outcome=junit.JUnit.FAILURE,
message="fail_message")
j.add_test("Eggs.Spam", 42.00, outcome=junit.JUnit.ERROR)
expected = """
<testsuite errors="1" failures="1" name="test" tests="3" time="58.51">
<testcase classname="Foo" name="Bar" time="3.14" />
<testcase classname="Foo" name="Baz" time="13.37">
<failure message="fail_message" /></testcase>
<testcase classname="Eggs" name="Spam" time="42.00">
<error message="" /></testcase></testsuite>"""
self.assertEqual(expected.replace("\n", ""), j.to_xml())
def test_empty_testsuite(self):
j = junit.JUnit("test")
expected = """
<testsuite errors="0" failures="0" name="test" tests="0" time="0.00" />"""
self.assertEqual(expected.replace("\n", ""), j.to_xml())
def test_invalid_outcome(self):
j = junit.JUnit("test")
self.assertRaises(ValueError, j.add_test, "Foo.Bar", 1.23,
outcome=1024)