npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@karatelabs/karate

v0.3.2

Published

NPM for Karate

Downloads

3,637

Readme

@karatelabs/karate

Seamlessly use the power of Karate from Node / JS projects.

Usage

Given this script test.js:

#! /usr/bin/env node
const karate = require('@karatelabs/karate');
karate.exec();

And in package.json (use the latest version from npm):

{
  "scripts": {
    "test": "node test.js"
  },
  "devDependencies": {
    "@karatelabs/karate": "^0.2.2"
  }
}

When you run npm install, jbang and other Karate dependencies needed will be installed via jbang-npm.

And to run a single test:

npm run test karate/httpbin.feature

Or to run all tests in a folder:

npm run test karate

Known Issues

Users on Windows have reported issues such as the npm install failing to complete and without any errors shown.

Please do contribute if you can and improve how JavaScript projects can integrate smoothly with Java projects !

As a workaround, please install JBang manually and re-try the npm install step.

Setting Karate Version

To use a specific version of Karate, just set karate.version before calling karate.exec():

#! /usr/bin/env node
const karate = require('@karatelabs/karate');
karate.version = '1.2.0';
karate.exec();

CLI Reference

All Karate capabilities can be invoked by the command-line.

The most common needs are to:

  • run feature-file(s) or all feature-files in a folder as Karate tests
  • start an API mock-server

The complete documentation can be found here.

You can also use the --help command-line option to see all the possible options and brief descriptions on the console.

karate-config.js

Karate will look for a karate-config.js file in the current working directory.

But if you need to point to a different directory, you can set karate.config.dir before calling karate.exec()

To pass arguments to the JVM use the jvm object karate.jvm.args

CLI options can be passed as a string to the karate.exec('-T=5') method.

#! /usr/bin/env node
const karate = require('@karatelabs/karate');
karate.config.dir = '/users/myname/some/dir';
karate.jvm.args = `-Dlogback.configurationFile=${__dirname}/logback-test.xml`;
karate.exec("-T=5");

Custom Java Classpath

For teams that want to customize the Java classpath by adding libraries or custom-code, please refer to the wiki: Custom Fat JAR. This may be easier to achieve by using Maven to prepare a Docker image, which can then be used by teams on the command-line without needing NPM, Java or Karate - and only Docker is a pre-requisite.

If you want to use additional Java libraries or custom code and avoid Maven and Java dev-tools, refer to this example: Using Java Libraries with NPM.