Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

use distinct xunit pattern for ROS 2 #828

Merged
merged 1 commit into from
Aug 14, 2020

Conversation

dirk-thomas
Copy link
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.

@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
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
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
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