JSCover is a JavaScript Code Coverage Tool that measures line, branch and function coverage

Overview

JSCover - A JavaScript code coverage measurement tool.

Build Status codecov Maven Central License: GPL v2 Gitter

JSCover is an easy-to-use JavaScript code coverage measuring tool. It is an enhanced version of the popular JSCoverage tool, having added several features including branch coverage, LCOV and Cobertura XML reports for CI integration, hooks for automated tests and HTML Local Storage to maintain coverage data without the use of iFrames or JavaScript opened windows.

It's distinguishing factor from other JavaScript coverage tools is that it easily runs in any browser (supporting JavaScript) allowing coverage measurement of tests that include DOM interaction. It can be run with most tools (e.g. Jasmine, QUnit, Mocha, etc...).

Development

Development with JSCover is simple (clean check-out and build should just work). It is an Ant build using Maven's dependency management. What you need:

  • Java 1.8+ (runtime requires Java 1.8+)
  • Ant (developed with version 1.9.2 to 1.10.1)

Most development has been done with IntelliJ ultimate edition, and some with Eclipse and IntelliJ community edition. Project files for IDEs are checked in, but any editor can be used.

Before checking in any changes, be sure to run ant pre-commit which runs the full build and test suite, and enforces coverage limits on the combined unit and integration tests as well as on the combined unit, integration and acceptance tests.

Comments
  • JSCover file system instrumentation

    JSCover file system instrumentation

    Hi, 1.)I have been using JSCover file system instrumentation mode. 2.) I have successfully instrumented my .js files . 3.)ALso the instrumented .js files has been attached to the site. 4.) Now I am manually doing some tests in the instrumented files. 5.)So my last aim is to collect the coverage data generated. 6.)So for testing i am calling on the .js files jscoverage_serializeCoverageToJSON() method from a javascript file. 7)I am not using PhantomJS,or webdriver or selenium 8.)I am storing the outcome like :: var str=jscoverage_serializeCoverageToJSON(); Then printing it like document.write(str); I am not getting the coverage report.........Like how much lines got executed.......

    If i am wrong then how to write it a javascript file to store the data coming from jscoverage_serializeCoverageToJSON(); also if i am writing in javascript then u cannot save it locally in a file....(i may hv to use node.js)

    question 
    opened by somnath10 80
  • How to get JS Code Coverage using manual test execution?

    How to get JS Code Coverage using manual test execution?

    I'm running some tests manually on a JS application using proxy mode. Would you provide me some instructions on how to gather JS Coverage when running manual tests please?

    question 
    opened by pillal 54
  • JSCover.log is blank after running my manual test on instrumented code

    JSCover.log is blank after running my manual test on instrumented code

    I instrumented the code,started running web server in proxy mode, started JSCOver as well and then started running few manual tests on the instrumented code. I see all the file structure getting created in the target folder. However, coverage is zero.

    Could you let me know if I'm missing something here?

    question 
    opened by pillal 45
  • "Error saving coverage data",jscover.server.InstrumentingRequestHandler, com.google.gson.JsonSyntaxException: java.io.EOFException: End of input at line 1 column 8376000 path $..functionData[35]

    There are error messages as followings when I use jscover and adding the option "--include-unloaded-js" in proxy mode.

    start proxy command - java -jar JSCover-all-2.0.3.jar -ws --proxy --port=3128 --report-dir=./jscover/output --document-root=/Users/weiding/Git/fmw-bi-qafmk/bitools-utils/podapiutil/coverage/carbs/js/plugins --local-storage --include-unloaded-js

    I do not have any idea about this issue. Is it a bug when saving the coverage data?

    Detailed error messages- 20180403 11:20:00.439,227,SEVERE,"Error saving coverage data",jscover.server.InstrumentingRequestHandler, com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Unterminated string at line 1 column 8370739 path $..branchData.5[1].evalFalse at com.google.gson.Gson.fromJson(Gson.java:902) at com.google.gson.Gson.fromJson(Gson.java:852) at com.google.gson.Gson.fromJson(Gson.java:801) at com.google.gson.Gson.fromJson(Gson.java:773) at jscover.report.JSONDataMerger.jsonToMap(JSONDataMerger.java:404) at jscover.report.JSONDataSaver.saveJSONData(JSONDataSaver.java:382) at jscover.server.InstrumentingRequestHandler.storeReport(InstrumentingRequestHandler.java:421) at jscover.server.InstrumentingRequestHandler.handlePostOrPut(InstrumentingRequestHandler.java:391) at jscover.server.HttpServer.run(HttpServer.java:418) Caused by: com.google.gson.stream.MalformedJsonException: Unterminated string at line 1 column 8370739 path $..branchData.5[1].evalFalse at com.google.gson.stream.JsonReader.syntaxError(JsonReader.java:1559) at com.google.gson.stream.JsonReader.nextQuotedValue(JsonReader.java:1017) at com.google.gson.stream.JsonReader.nextName(JsonReader.java:787) at com.google.gson.internal.bind.ObjectTypeAdapter.read(ObjectTypeAdapter.java:70) at com.google.gson.internal.bind.ObjectTypeAdapter.read(ObjectTypeAdapter.java:61) at com.google.gson.internal.bind.ObjectTypeAdapter.read(ObjectTypeAdapter.java:70) at com.google.gson.internal.bind.ObjectTypeAdapter.read(ObjectTypeAdapter.java:70) at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.read(TypeAdapterRuntimeTypeWrapper.java:41) at com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.read(MapTypeAdapterFactory.java:187) at com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.read(MapTypeAdapterFactory.java:145) at com.google.gson.Gson.fromJson(Gson.java:887) ... 8 more

    20180403 11:25:32.769,441,SEVERE,"Error saving coverage data",jscover.server.InstrumentingRequestHandler, com.google.gson.JsonSyntaxException: java.io.EOFException: End of input at line 1 column 8376000 path $..functionData[35] at com.google.gson.Gson.fromJson(Gson.java:897) at com.google.gson.Gson.fromJson(Gson.java:852) at com.google.gson.Gson.fromJson(Gson.java:801) at com.google.gson.Gson.fromJson(Gson.java:773) at jscover.report.JSONDataMerger.jsonToMap(JSONDataMerger.java:404) at jscover.report.JSONDataSaver.saveJSONData(JSONDataSaver.java:382) at jscover.server.InstrumentingRequestHandler.storeReport(InstrumentingRequestHandler.java:421) at jscover.server.InstrumentingRequestHandler.handlePostOrPut(InstrumentingRequestHandler.java:391) at jscover.server.HttpServer.run(HttpServer.java:418) Caused by: java.io.EOFException: End of input at line 1 column 8376000 path $..functionData[35] at com.google.gson.stream.JsonReader.nextNonWhitespace(JsonReader.java:1393) at com.google.gson.stream.JsonReader.doPeek(JsonReader.java:467) at com.google.gson.stream.JsonReader.hasNext(JsonReader.java:414) at com.google.gson.internal.bind.ObjectTypeAdapter.read(ObjectTypeAdapter.java:60) at com.google.gson.internal.bind.ObjectTypeAdapter.read(ObjectTypeAdapter.java:70) at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.read(TypeAdapterRuntimeTypeWrapper.java:41) at com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.read(MapTypeAdapterFactory.java:187) at com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.read(MapTypeAdapterFactory.java:145) at com.google.gson.Gson.fromJson(Gson.java:887) ... 8 more

    opened by weiding111 33
  • Using HTML5 localStorage instead of an iframe

    Using HTML5 localStorage instead of an iframe

    I created a small script that hacks localStorage support into the JSCover instrumentation. (I had difficulty getting my Rails Capybara tests to run with any of execution modes in the manual, it always seemed to click in the wrong frame or close the other tab before I could get the coverage data out reliably.)

    All it does is add these two lines of code at the start:

    if (typeof(_$jscoverage)=='undefined' && localStorage["jscov"]) _$jscoverage= JSON.parse(localStorage["jscov"])
    window.onbeforeunload = function(){if (typeof(_$jscoverage) != 'undefined' ) localStorage["jscov"]=jscoverage_serializeCoverageToJSON()}
    

    An then there is one line of code in my test setup that empties out the localStorage at the start and at the end a bit that captures the coverage data. And a little rake script to automate the whole process.

    Question: This all works great as long as the branch detection is off, I couldn't figure out how the branch data can be reconstructed from JSON.

    Feature request: It would be nice to have an option for JSCover to add the lines needed for localStorage automatically.

    enhancement 
    opened by Fjan 33
  • Source map support in jscover?

    Source map support in jscover?

    Reposting this question https://sourceforge.net/p/jscover/discussion/general/thread/102a5fba/

    Sorry if the question is not right on target, but there is a use case we need to fulfill, will try to describe here.

    Esp with impending ES6 and Babel adoption (where babel will transpile es6 to es5 code), we are being asked to look into what we can do to show original sources in coverage report, so is there a way to use source maps with jscover? Source maps could be either for babel transpilation or for minification. Either way, goal is to see coverage for original source somehow.

    Also since jscover does store original-src in the report, if source map is also available on disk somewhere, can that somehow be leveraged in jscover?

    question 
    opened by binodpanta 22
  • Interpreting the Cobertura results

    Interpreting the Cobertura results

    Hello, and thanks in advance for this very helpful tool. We are currently working with JSCover on a large scale development project and we've successfully integrated the Cobertura results into our Jenkins build process. We are having some issues interpreting the results however, here is an example of how they can look for a test case: coverageexample

    The report indicates that 2 out 2 packages have been covered, and 4 out of 4 files have been covered. While it's true that 4 files have been covered, there are far more than 4 total files in the project (number of files are in the hundreds, and packages in the dozens), so it should be 4 out of XXX, right? Similary lines covered says 6 out of 945, but 945 is only the total for the covered files, not the entire project.

    Is there something you can immedietly point to that we're doing wrong which causes this, or are we interpreting the results incorrectly? We seem to be referencing the source code correctly when creating the Cobertura XML, because if we go into the "breakdown by file" it correctly displays the source code of the covered files atleast. Thanks in advance

    enhancement 
    opened by jonassvalin 22
  • Encoding problem with proxied binary data

    Encoding problem with proxied binary data

    I've just updated from jscoverage to JSCover (using as proxy instrumentation server) and now have some troubles with POST-requests containing binary data ... the requests get stuck at the proxy and run into a socket timeout of 1 minute.

    Here are some details:

    • the POST-requests that cause the problem are multipart-posts containing binary data (but small ones handled as 1 request ... < 1KB)
    • the binary data inside that POST-request is from an XML-file with UTF-8 encoding with byte-order-mark (BOM) / without the BOM the problem does not occur
    • I'm using the java system config -Dfile.encoding=UTF-8
    • these requests are not instrumented but handled by the proxy
    • I think the problem is that the POST-data is handled as text (toStringNoClose) which leads into encoding problems that the binary data length is different from the encoded character-text length and therefor the stream read operation can't read any more data -> timeout

    Here is a screenshot of some debug output logs for more details ... jscover-encoding-bug

    It would be much better to forward (especially not instrumented requests) exactly with the same content as they are received (copy stream data as binary data - not as encoded characters). POST-data requests could also contain real binary data - maybe they should be by-passed even at a higher level.

    Kind regards, Klaus.

    bug 
    opened by KPesendorfer 22
  • chrome console throw 'unsafe-eval' when I use File Mode generated js file replace web server js folder.

    chrome console throw 'unsafe-eval' when I use File Mode generated js file replace web server js folder.

    Hi, Such as the title, my action as following:

    run command java -Dfile.encoding=UTF-8 -jar /JSCover-all.jar -fs --local-storage ./js1 ./js2 in WebServer js folder.

    In this time, use chrome open the web, is ok, look like no problem, I can run jscoverage_serializeCoverageToJSON(); in chrome console get jscoverage.json string when I run my test case.

    but, if refresh the current page or use other browsers open it, such as chrome console throws an error, Refused to evaluate a string as JaveScript because 'unsafe-eval' is not an allowed source of script in the following Content Security Policy directive: "default-src 'self'.

    I don't understand, my usage is right?

    If I hope to use File Mode compiled js file in webserver, what should I do?

    thank you for your time.

    bug Fix applied - please re-test 
    opened by MH1176 21
  • How to begin with file system instrumentation mode

    How to begin with file system instrumentation mode

    Hello Everyone . I am a beginner in JSCover . I just want to know , how to begin with file system mode .

    what i have done till now -

    1. Downloaded JSCover and paste my all the files and test cases in the doc/example/ folder .
    2. Create server by calling example/server/jscover-server.bat or by cmd
    3. By Opening perticular link on browser (i.e. localhost:8080/ ) , it showed to me code coverage of my files and also generate the report in the target folder .

    what i have to do -

    1. I have integrate JSCover with my project , that will automatically test my js file by taking test cases without creating server , just show me the result or report.

    what i want to know -

    1. I think for achieving my goal , i have to begin on file system automation .
    2. please help me from where i should start ?
    3. do i need to use selenium , phantomJs , htmlunit etc ?
    4. I want to modify JScover according to my own requirements , please guide me .
    5. what is proxy mode , is it useful for me ? thanks in advance
    question 
    opened by hiteshsardana99 19
  • JSCover fails to merge / save coverage data to the json and xml files

    JSCover fails to merge / save coverage data to the json and xml files

    Since switching from the JSCover-all.jar to the jcenter jscover Gradle "com.github.tntim96:JSCover:1.0.23" dependency JSCover no longer produces correct coverage data.

    The jscoverage.json file has around 95k json and around 60k 0 bytes (Hex: 0x00).

    I also tried version 1.0.24 and 1.0.25 with the same results.

    I start JSCover using ant with:

      <property name="jscover.main.jar" location="com.github.tntim96-JSCover.jar"/>
    
      <path id="jscover.classpath">
        <pathelement location="org.mozilla-rhino.jar"/>
        <pathelement location="${jscover.main.jar}"/>
      </path>
    
      <target name="jscover-start">
        <java classname="jscover.Main" classpathref="jscover.classpath" fork="true" spawn="true">
        ...
    

    The log file doesn't contain anything more useful than the message I get during shutdown:

    [java] Exception in thread "main" java.lang.RuntimeException: org.mozilla.javascript.json.JsonParser$ParseException: Unexpected token: 
    [java] 	at jscover.report.JSONDataMerger.jsonToMap(JSONDataMerger.java:436)
    [java] 	at jscover.report.Main.saveCoberturaXml(Main.java:465)
    [java] 	at jscover.report.Main.runReport(Main.java:409)
    [java] 	at jscover.report.Main.runMain(Main.java:394)
    [java] 	at jscover.report.Main.main(Main.java:366)
    [java] Caused by: org.mozilla.javascript.json.JsonParser$ParseException: Unexpected token: 
    [java] 	at org.mozilla.javascript.json.JsonParser.readValue(JsonParser.java:82)
    [java] 	at org.mozilla.javascript.json.JsonParser.readArray(JsonParser.java:167)
    [java] 	at org.mozilla.javascript.json.JsonParser.readValue(JsonParser.java:60)
    [java] 	at org.mozilla.javascript.json.JsonParser.readObject(JsonParser.java:119)
    [java] 	at org.mozilla.javascript.json.JsonParser.readValue(JsonParser.java:58)
    [java] 	at org.mozilla.javascript.json.JsonParser.readObject(JsonParser.java:119)
    [java] 	at org.mozilla.javascript.json.JsonParser.readValue(JsonParser.java:58)
    [java] 	at org.mozilla.javascript.json.JsonParser.parseValue(JsonParser.java:44)
    [java] 	at jscover.report.JSONDataMerger.jsonToMap(JSONDataMerger.java:412)
    [java] 	... 4 more
    

    From jscover.log

    20161221 17:21:22.604,912,INFO,"Saving/merging JSON with existing JSON",jscover.report.JSONDataSaver,
    20161221 17:21:22.604,912,INFO,"Saving/merging JSON with existing JSON",jscover.report.JSONDataSaver,
    20161221 17:21:22.607,912,SEVERE,"Error saving coverage data",jscover.server.InstrumentingRequestHandler,
    java.lang.RuntimeException: org.mozilla.javascript.json.JsonParser$ParseException: Unexpected token: n
            at jscover.report.JSONDataMerger.jsonToMap(JSONDataMerger.java:436)
            at jscover.report.JSONDataMerger.mergeJSONCoverageStrings(JSONDataMerger.java:368)
            at jscover.report.JSONDataSaver.saveJSONData(JSONDataSaver.java:373)
            at jscover.server.InstrumentingRequestHandler.storeReport(InstrumentingRequestHandler.java:421)
            at jscover.server.InstrumentingRequestHandler.handlePostOrPut(InstrumentingRequestHandler.java:391)
            at jscover.server.HttpServer.run(HttpServer.java:418)
    Caused by: org.mozilla.javascript.json.JsonParser$ParseException: Unexpected token: n
            at org.mozilla.javascript.json.JsonParser.readNull(JsonParser.java:367)
            at org.mozilla.javascript.json.JsonParser.readValue(JsonParser.java:68)
            at org.mozilla.javascript.json.JsonParser.readArray(JsonParser.java:167)
            at org.mozilla.javascript.json.JsonParser.readValue(JsonParser.java:60)
            at org.mozilla.javascript.json.JsonParser.readObject(JsonParser.java:119)
            at org.mozilla.javascript.json.JsonParser.readValue(JsonParser.java:58)
            at org.mozilla.javascript.json.JsonParser.readObject(JsonParser.java:119)
            at org.mozilla.javascript.json.JsonParser.readValue(JsonParser.java:58)
            at org.mozilla.javascript.json.JsonParser.parseValue(JsonParser.java:44)
            at jscover.report.JSONDataMerger.jsonToMap(JSONDataMerger.java:412)
            ... 5 more
    
    20161221 17:21:22.607,912,FINE,"Sending response status:200 OK mime:text/plain",jscover.server.HttpServer,
    

    Any Ideas?

    question 
    opened by cobexer 18
  • can u add line and branch coverage data to class attribute

    can u add line and branch coverage data to class attribute

    As for our project , we need more detail coverage data about every js file, so can you add the following info to classElement.

            classElement.setAttribute("lines-covered", "" + file.getCodeLinesCoveredCount());
            classElement.setAttribute("lines-valid", "" + file.getCodeLineCount());
            classElement.setAttribute("branchs-covered", "" + file.getBranchesCoveredCount());
            classElement.setAttribute("branchs-valid", "" + file.getBranchCount());
    

    we will be very appreciate , if you add this. thank you very much !

    image

    After added , the following xml is what we want image

    enhancement good first issue 
    opened by kathxqq 4
  • Test improvement: removed Exception Handling (test smell)

    Test improvement: removed Exception Handling (test smell)

    This is a test refactoring.

    Problem: The Exception Handling test smell occurs when a test method explicitly a passing or failing of a test method is dependent on the production method throwing an exception.

    Solution: Use JUnit's exception handling to automatically pass/fail the test instead of writing custom exception handling code or throwing an exception. In this case, JUnit 4.13 assertThrows() was used to properly handle the expected exception.

    Result: Before:

    try {
        mainHelper.checkDependantClasses(dependantClasses, "MANIFEST-NO-CLASS-PATH.MF");
        fail("Should have thrown exception");
    } catch(IllegalStateException e) {
        String message = e.getMessage();
        assertThat(message, equalTo("Could not find the 'Class-Path' attribute in the manifest 'MANIFEST-NO-CLASS-PATH.MF'"));
    }
    

    After:

    IllegalStateException thrown = assertThrows(IllegalStateException.class, () ->
                mainHelper.checkDependantClasses(dependantClasses, "MANIFEST-NO-CLASS-PATH.MF"));
    assertTrue(thrown.getMessage().contains("Could not find the 'Class-Path' attribute in the manifest " +
                "'MANIFEST-NO-CLASS-PATH.MF'"));
    
    opened by eas5 2
  • Add ability to ignore lines

    Add ability to ignore lines

    How (and if) this is implemented is currently wide open. The JSCoverage approach has been partially implemented, however this only works in the JSCoverage report, so am not keen to add something limited in this way except for those migrating from JSCoverage.

    Things to consider:

    • How should merging be handled
    • Should statistics be affected (i.e. add a fake increment or teat ignored code as comments)
    • How could this work in other reports (e.g. LCOV)
    enhancement Investigating 
    opened by tntim96 0
  • Hide branch columns if there is no branch coverage data

    Hide branch columns if there is no branch coverage data

    If branch coverage has been disabled (the coverage contains no branch coverage). The 3 columns concerning the branch coverage are not useful and should be hidden.

    enhancement 
    opened by cobexer 0
Releases(v2.0.15)
  • v2.0.15(Apr 26, 2022)

    Fix instrument function after comma in assignment (https://github.com/tntim96/JSCover/issues/303) Fix selenium-ide.html in localStorage-file-system example (https://github.com/tntim96/JSCover/issues/312) Upgrade closure-compiler v20220202 to v20220405, gson 2.8.9 to 2.9.0

    Internal: HtmlUnit 2.58.0 to 2.61.0, Mockito 4.3.1 to 4.5.1, JaCoCo 0.8.7 to 0.8.8

    Source code(tar.gz)
    Source code(zip)
    JSCover-2.0.15.zip(31.35 MB)
Owner
null
blanket.js is a simple code coverage library for javascript. Designed to be easy to install and use, for both browser and nodejs.

Blanket.js A seamless JavaScript code coverage library. FYI: Please note that this repo is not actively maintained If you're looking for a more active

Alex Seville 1.4k Dec 16, 2022
A Node.js tool to automate end-to-end web testing.

A Node.js tool to automate end-to-end web testing. Write tests in JS or TypeScript, run them and view results. Homepage • Documentation • FAQ • Suppor

Developer Express Inc. 9.5k Jan 9, 2023
Simple JavaScript testing framework for browsers and node.js

A JavaScript Testing Framework Jasmine is a Behavior Driven Development testing framework for JavaScript. It does not rely on browsers, DOM, or any Ja

Jasmine 15.5k Jan 2, 2023
☕️ simple, flexible, fun javascript test framework for node.js & the browser

☕️ Simple, flexible, fun JavaScript test framework for Node.js & The Browser ☕️ Links Documentation Release Notes / History / Changes Code of Conduct

Mocha 21.8k Dec 30, 2022
🔮 An easy-to-use JavaScript unit testing framework.

QUnit - A JavaScript Unit Testing Framework. QUnit is a powerful, easy-to-use, JavaScript unit testing framework. It's used by the jQuery project to t

QUnit 4k Jan 2, 2023
Delightful JavaScript Testing.

?? Delightful JavaScript Testing ????‍?? Developer Ready: A comprehensive JavaScript testing solution. Works out of the box for most JavaScript projec

Facebook 41k Jan 4, 2023
Demo Selenium JavaScript E2E tests (end-to-end web browser automation tests)

Demo Selenium JavaScript E2E tests (end-to-end web browser automation tests)

Joel Parker Henderson 1 Oct 9, 2021
Playwright is a framework for Web Testing and Automation. It allows testing Chromium, Firefox and WebKit with a single API.

?? Playwright Documentation | API reference Playwright is a framework for Web Testing and Automation. It allows testing Chromium, Firefox and WebKit w

Microsoft 46.3k Jan 9, 2023
Test runner based on Tape and Browserify

prova Node & Browser Test runner based on Tape and Browserify. Screencasts: node.gif, browser.gif, both.gif, headless browser Slides: slides.com/azer/

Azer Koçulu 335 Oct 28, 2022
tap-producing test harness for node and browsers

tape tap-producing test harness for node and browsers example var test = require('tape'); test('timing test', function (t) { t.plan(2); t.eq

James Halliday 5.7k Dec 18, 2022
Cypress Playback is a plugin and a set of commands that allows Cypress to automatically record responses to network requests made during a test run.

Cypress Playback ?? Automatically record and playback HTTP requests made in Cypress tests. Cypress Playback is a plugin and a set of commands that all

O’Reilly Media, Inc. 5 Dec 16, 2022
A quickstart AWS Lambda function code generator. Downloads a template function code file, test harness file, sample SAM deffiniation and appropriate file structure.

Welcome to function-stencil ?? A quickstart AWS Lambda function code generator. Downloads a template function code file, test harness file, sample SAM

Ben Smith 21 Jun 20, 2022
This branch is created to make receive and send data to api using async and await methods

Microverse-Leader-Board Project from module 2 week 4 This branch is created to make receive and send data to api using async and await methods Screens

Akshitha Reddy 6 Apr 22, 2022
ScrapedDuck routinely scrapes LeekDuck.com and pushes the found data to a branch on this repository, for use by other external applications.

ScrapedDuck ScrapedDuck routinely scrapes LeekDuck.com (with permission) and pushes the found data to a branch on this repository, for use by other ex

Anthony 19 Dec 19, 2022
blanket.js is a simple code coverage library for javascript. Designed to be easy to install and use, for both browser and nodejs.

Blanket.js A seamless JavaScript code coverage library. FYI: Please note that this repo is not actively maintained If you're looking for a more active

Alex Seville 1.4k Dec 16, 2022
☁️ Publish your npm package to a GitHub repository branch

git-publish Publish your npm package to a Git branch. Support this project by ⭐️ starring and sharing it. Follow me to see what other cool projects I'

hiroki osame 28 Oct 21, 2022
Ansible template that shows how to create dynamic staging servers with ..com

Vagrant + Ansible + Docker Swarm + Trafeik + NGINX template Template repo that creates virtual machines with Docker, Docker Swarm, Traefik, NGINX. It

Mateusz Bagiński 4 Oct 15, 2022
👋 Canyon is a JavaScript code coverage platform

Canyon Welcome to the Canyon codebase, we are thrilled to have you here! What is Canyon? Canyon is a JavaScript code coverage platform. Canyon can rea

Canyon 99 Oct 6, 2022