Giter Site home page Giter Site logo

merge_junit_report's People

Contributors

dyang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

exhorder dstranz

merge_junit_report's Issues

Move merge functionality to separate gem

Right now this repository is useful only for fastlane users. Can you move merging functionality to separate gem and add this new gem as a dependency to the current project, please?

Nokogiri removal request

Is it possible to update this plugin to no longer use nokogiri and instead use something that does not require manual installation? What I mean is that when ever I update gems, I always have to brew unlink xz and call gem install nokogiri-version-number and then brew link xz. Its a pain.

I transitioned fastlane-plugin-setup_fragile_tests_for_rescan to use REXML and it seems to work nicely; it is included in Ruby.

Merge is not working for me

@dyang, I've finally been able to update our code to use your nokogiri-free plugin. However, it is not working for me. Can you take a look and see if this is user error or if there is something that your action doesn't anticipate that it should?

Here are the two files I'm trying to merge:
report_0.xml

<?xml version='1.0' encoding='UTF-8'?>
<testsuites failures='1' name='UI Tests.xctest' tests='26'>
  <testsuite failures='1' name='MyTests' tests='26'>
    <testcase classname='MyTests' name='testMyThingAdditionInLandscape' time='21.818'/>
    <testcase classname='MyTests' name='testMyThingAdditionStep1' time='18.772'/>
    <testcase classname='MyTests' name='testMyThingAdditionStep2' time='18.024'/>
    <testcase classname='MyTests' name='testMyThingAdditionStep3' time='17.976'/>
    <testcase classname='MyTests' name='testMyThingAdditionStep4' time='18.061'/>

    <testcase classname='MyTests' name='testAlertDeduplication' time='13.720'/>
    <testcase classname='MyTests' name='testAppNeedsUpdateError' time='11.169'/>
    <testcase classname='MyTests' name='testCancelingAddMyAccount' time='14.947'/>
    <testcase classname='MyTests' name='testCancelingPlarp' time='13.662'/>
    <testcase classname='MyTests' name='testDeletingMyThings' time='15.896'/>
    <testcase classname='MyTests' name='testDiagnosticsButtonHiddenWhenOff' time='8.031'/>
    <testcase classname='MyTests' name='testDiagnosticsNotRecordedWhenOff' time='21.633'/>
    <testcase classname='MyTests' name='testDiagnosticsRecordedWhenOn' time='21.985'/>
    <testcase classname='MyTests' name='testDuplicateMyThing' time='17.676'/>
  </testsuite>
</testsuites>

report_1.xml

<?xml version='1.0' encoding='UTF-8'?>
<testsuites name='UI Tests.xctest' tests='1' failures='1'>
  <testsuite name='MyTests' tests='1' failures='1'>
    <testcase classname='MyTests' name='testMyThingEditing'>
      <failure message='UI Testing Failure - No matches found for &quot;Clear text&quot; Button'>MyTests.m:121</failure>
    </testcase>
  </testsuite>
</testsuites>

result of merge:

<?xml version='1.0' encoding='UTF-8'?>
<testsuites name='UI Tests.xctest' tests='26'>
  <testsuite name='MyTests' tests='26'>
    <testcase classname='MyTests' name='testMyThingAdditionInLandscape' time='21.818'/>
    <testcase classname='MyTests' name='testMyThingAdditionStep1' time='18.772'/>
    <testcase classname='MyTests' name='testMyThingAdditionStep2' time='18.024'/>
    <testcase classname='MyTests' name='testMyThingAdditionStep3' time='17.976'/>
    <testcase classname='MyTests' name='testMyThingAdditionStep4' time='18.061'/>
    <testcase classname='MyTests' name='testAlertDeduplication' time='13.720'/>
    <testcase classname='MyTests' name='testAppNeedsUpdateError' time='11.169'/>
    <testcase classname='MyTests' name='testCancelingAddMyAccount' time='14.947'/>
    <testcase classname='MyTests' name='testCancelingPlarp' time='13.662'/>
    <testcase classname='MyTests' name='testDeletingMyThings' time='15.896'/>
    <testcase classname='MyTests' name='testDiagnosticsButtonHiddenWhenOff' time='8.031'/>
    <testcase classname='MyTests' name='testDiagnosticsNotRecordedWhenOff' time='21.633'/>
    <testcase classname='MyTests' name='testDiagnosticsRecordedWhenOn' time='21.985'/>
    <testcase classname='MyTests' name='testDuplicateMyThing' time='17.676'/>
  </testsuite>
</testsuites>

Notice that it is missing:

<testcase classname='MyTests' name='testMyThingEditing'>
      <failure message='UI Testing Failure - No matches found for &quot;Clear text&quot; Button'>MyTests.m:121</failure>
</testcase>

Here is the command I am running:

final_report_filepath = 'artifacts/tests/report.xml'
test_result_filepaths = ['artifacts/tests/report_0.xml', 'artifacts/tests/report_1.xml']
merge_junit_report(
 input_files: test_result_filepaths,
 output_file: final_report_filepath
)

Example terminal/command line command

Can you provide an example command in the readme that shows how to pass in the derived data path? Should it point to the root derived data or the derived data folder for a specific application?

Great plugin

Thanks for putting together a great plugin. I'm updating our build system to use it after multiple re-scans.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.