Skip to content

use distinct xunit pattern for ROS 2#828

Merged
dirk-thomas merged 1 commit intomasterfrom
dirk-thomas/use-distinct-xunit-pattern-for-ros2
Aug 14, 2020
Merged

use distinct xunit pattern for ROS 2#828
dirk-thomas merged 1 commit intomasterfrom
dirk-thomas/use-distinct-xunit-pattern-for-ros2

Conversation

@dirk-thomas
Copy link
Copy Markdown
Member

@dirk-thomas dirk-thomas commented Aug 14, 2020

This redoes #723 and #724 (which were reverted in #725) and also adds a specific pattern for the xUnit type CTestType since CTest result files are available now (see colcon/colcon-cmake#89).

Without this change Jenkins tries to interpret the newly copied CTest result files as GoogleTest results files and chokes, e.g.:

  • Build Status
  • Build Status
  • Build Status

With this patch:

  • Build Status
  • Build Status
  • Build Status

I assume this works now because both buildfarms have been updated to the latest xUnit plugin version.

Signed-off-by: Dirk Thomas <dirk-thomas@users.noreply.github.com>
@dirk-thomas dirk-thomas merged commit 087fcac into master Aug 14, 2020
@dirk-thomas dirk-thomas deleted the dirk-thomas/use-distinct-xunit-pattern-for-ros2 branch August 14, 2020 16:30
@dirk-thomas
Copy link
Copy Markdown
Member Author

dirk-thomas commented Aug 14, 2020

I assume the current patch resolves the issue for Rolling and Foxy.

For Eloquent (and likely Dashing) this needs more work: e.g. Build Status

types.append(('CTestType', 'ws/test_results/*/Testing/*/Test.xml'))
types.append(('GoogleTestType', 'ws/test_results/**/*.gtest.xml'))
types.append((
'JUnitType' if pytest_junit_compliant else 'GoogleTestType',
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's not super clear in the pytest documentation or in the deprecation warnings produced, but testing locally I've observed that using pytest version >= 6 does not imply that the junit_family type will be xunit2. In fact, if you don't explicitly set the junit_family (either with a pytest.ini file or a pytest -o option), then we get the legacy behavior. This is what's causing CI to fail for Foxy (ros2/ros2#1016).

I think this only happened to work for Rolling because of all of the backports explicitly setting the junit_family in pytest.ini files (ros2/ros2#951).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See #836 for a proposed fix.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants