Giter VIP home page Giter VIP logo

plists2junit's Introduction

This script reads a TestSummaries.plist file (as produced by Xcode unit tests) and prints out XML suitable for parsing by Jenkins's JUnit plugin.

Why do you need this?

The most popular tools for doing this (xcpretty and trainer) are surprisingly bad at the one thing they are supposed to do: generate test reports.

  • xcpretty tries to parse Xcode's output as it runs the tests rather than parsing the nicely formatted summary file. Because tests can run in parallel or output log messages that interrupt the output, this resulted in xcpretty missing 25% of our test results in its report.
  • trainer outputs redundant timing summaries. This confuses the Jenkins plugin, causing it to report incorrect aggregate test times
  • trainer incorrectly groups tests (it doesn't translate test targets into packages), so if you organize your tests in Xcode into separate targets that all gets wiped away in the report
  • trainer depends on fastlane, which is a massive dependency for such a simple task
  • Both xcpretty and trainer give up if any tests encountered errors, even if other tests were run successfully. Meaning you get no report, rather than a partial one

What does this do better?

  • Depends only on standard mac OS utilities (ruby, plutil, no gems)
  • Simple to run (one file in, prints to stdout)
  • Fast (0.22s for ~540 tests)
  • Includes test errors in output
  • Nicely organizes separate testing targets

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.