- Setup github actions
- Removed LGTM badge from README
- Remove circleci workflow
- Dependency version bumps to next major releases
- Audit cleanup
- Dependency version bumps (#42)
- Language Grade
- Error/Failure messaging returning
undefined
becuase it was preferring todo instead of message, which might not exist. #39
Please report any issues or serliazation that does not follow the below spec for output! Thanks!
- Changed the output generation of tap-junit to follow this spec more closely
- This means no more floating comments, they are now either in the
system-out
tag or themessage
attribute
- This means no more floating comments, they are now either in the
- Changed how handling tap comments works, please see the Comments section in the Readme
- Bit of re organization of the tool
- Bumped Docker node and tap versions
- Broken comments on some tap outputs
- Made the error diag more dynamic to handle different types of outputs instead of static and expecting
- Added the
-c
argument which sets thetestsuite
(NOTtestsuites
) name- This should fix #32 for the jenkins plugin it uses
- Tweaked the github bug report template a little to ask for the CLI use of tap-junit
- Removed the old
xmlbuilder
dependency, woops
- Converted from tap-out to tap-parser
- This change means that the xml generated is now "Flat" (see below)
- This removes the error count as there isn't an event for this anymore
- Skips are handled WAY better and more naturally with TAP
- This should flow better with proper tap output
- If a file extension is set in the command, it will be used for the generated file, if not
.xml
will be used - Error counter removed with new parser
- The
testcase
name no longer has test number, the test number is now provided in theid
attribute oftestcase
- Todo support
- Added new argument support
-p
or--pretty
use this if you want the xml output to be "pretty" (this isfalse
by default)
- Optimized performance from both parsing and serializing
- Data is built more dynamically, instead of relying on certain keys to exist
- Better JUnit formatting
- Moved from xmlbuilder to xmlbuilder2
Now <testsuits>
containes only a singular <testsuite>
element, within that all of the <testcase>
elements now live. Here's an example:
v3 tap-junit output:
<testsuites tests="4" name="suite-name" failures="0" errors="0">
<testsuite tests="3" failures="0" errors="0" name="1 === 1">
<testcase name="#1 test is equal"/>
<testcase name="#2 test skip extra # SKIP">
<skipped/>
</testcase>
<testcase name="#3 should not be equal"/>
</testsuite>
<testsuite tests="1" failures="0" errors="0" name="2 === 2">
<testcase name="#4 should be equal"/>
</testsuite>
<testsuite tests="0" failures="0" errors="0" name="SKIP skipped test"/>
</testsuites>
v4 tap-junit output:
<testsuites tests="4" name="Tap-Junit" failures="2">
<testsuite tests="4" failures="2" skipped="1">
<testcase id="1" name="test is equal"/>
<testcase id="2" name="test skip extra # SKIP">
<skipped/>
</testcase>
<testcase id="3" name="should not be equal"/>
<testcase id="4" name="should be equal"/>
</testsuite>
</testsuites>
- All dependencies have been updated in hopes to address yarn issue
- Fixed linting errors on some tests
- Updated minimiist dependency to fix vulnerability juanpaco
- You can now use custom extensions, just apply then to your file name in the
-n
option (#24)- Example:
tape test/*.js | tap-junit -o output/tests -n tape.xuni
- If no extension is provided
tap-junit
will default to.xml
automatically
- Example:
- Slight tweak to the contribution and PR template mark down files
-
Added two new test cases for failing tap.txt and bats tap output.
-
Fixed failing output which was causing a hard error within serialization of the output
- This was happening mainly due to results created by the above (failing tap output & failing bats output)
- For these types of inputs
tap-junit
will simply omit the type attribute and the stack trace from its output (since they don't technically exist anyway)
-
Upped tape version to latest
-
Swapped travis ci in favor of circleci
-
TODO Side note
- I want to revisit the serializer since it is being so lightly used it may be better to just ship a simple rendering engine of our own
- This would free up a dependency, but also give better control and possibly improved performance
- The above would also introduce an opportunity to do major cleanup with Kyanite
- I want to revisit the serializer since it is being so lightly used it may be better to just ship a simple rendering engine of our own
- Fixed Readme typo
- Output changed slightly, adding attributes to the main wrapper
- Removed
fs-extra
dependency for internalmkdirp
function- Please let me know if you migrate to v3.0.0 and experience any trouble right away so I can address it
- This should still function the same but I can't plan for every situation
- Added
-i, --input
option which allows you to use tap-junit as a command and specify tap input - Added
-v, --version
option to output the version of tap-junit - Added
-s, --suite
which sets the suite name of the testsuites wrapper
- root level output paths
- Upon an error (in tap-junit) when either writing or if the tests are not passing we call the
exit
method instead of setting the exitCode
- Tweaked the
.travis.yml
file for node 8, linting, and cache - Updated all current dependencies including dev
- Removed the
through2
dependency as it was no longer needed - Removed the
duplexer2
dependency as it is no longer needed - Switched to just using
console.log
vsprocess.stdout.write
(flip flop I know) - Converted to using the promise chain with
fs-extra
vs callbacks
- If you place the extension at the end of a name it will no longer get attached (Fixed in string sanitizer)
- Example:
tap-junit -n tap.xml
will no longer result intapxml.xml
but insteadtap.xml
still
- Example:
- Dropped the
.setOutput
and.main
layout (Remove support for API Usage overall) - An API system is not technically supported however requiring the module will give you the source
index.js
function
- Convert to use
standard
instead ofeslint
for linting - Update all of the dependencies
- Some bits of the flow are improved to hopefully make things easier to follow
- Slight tweaks and optimizations
tap-junit
will now exit with an error if an error happens in the code instead of writing anyway- Added a test set based around bad/erroring code
- Broke apart some testing to keep things organized
- Slight tweak for code cleanup and keeping things consistent
- Brought all of the dependencies up to date
- Fix for undefined test names @jscriptcoder
- Added type and message attr. Removed nested system-out elem @jscriptcoder
- Fix initialization of new test-suite - name is not passed correctly by @hsalokor
- Use --name passed from command line as default test suite name by @hsalokor
- Add lazy initialization to case if the tested software logs before first tap line by @hsalokor
- Some general cleanup and better practice rules
- Relax filename sanitation to allow - and _ and report correct output filename by @hsalokor
- Fix corner-case with testCase initialization by @hsalokor, thanks!
- Tweaked readme
- Removed a console that was committed by accident
- Fixed line endings for outputs
- Fixed/cleaned XML output for proper jUnit XML
- Added a small API to allow this to be used with tools like Karma and webpack
- This was mainly for a use case I needed I will happily expand on this if it is requested
- Failures will now build out xml as well to give you more info on failures
- Outputs will stdout to the console instead of a file if
--output
is not specified
- Continued optimizations
- Removed
plan
event listening since it was currently valueless - Removed
extra
event listening since it was currently valueless - If the tests had any failures instead of hard calling
process.exit(1)
we now properly set the exitCode - Better error handling (no more throws because no one is catching them duh)
- Added a
failure
counter to eliminate valueless computing - Dropped
console.log
in favor ofprocess.stdout.write
(sinceconsole.log
uses this anyway) - Now running on
Stream3
instead ofStream2
to stay onStream2
usev1.1.0
or lower
- Removed
- Added the ability to name your xml output file using the
--name
or-n
options in the command- Values passed into name are sanitized to avoid passing paths or other weird things
- Added a shorthand for
--output
which is-o
(soooo original) - Removed our
^
on module versions in case someone releases a bad version - Made Skip regex more strict when checking if an assert or test is skipped
- Did some structure reorg
- Moved everything into a
src
folder and added alint
command for the module - Removed the makefile because I don't actually remember why it was there to begin with
- Moved everything into a
- Dropped
tap-parser
in favor oftap-out
module tap-junit
will successfully recordskipped
tests nowskipped
main test suites now supported (not just skipped asserts)- Added internal counting to make things process faster
- Should now properly record
comments
from bothconsole.log
andt.comment
- Currently none of the tap parsers properly support
Skips
orTODOs
- Lots of performance optimizations
- Added some messages for other errors if a write fails for the output
- Removed Tape Dependency
- Swapped stuff over to github
- Readme Tweaks