1.6.5 • Published 7 years ago

digdug v1.6.5

Weekly downloads
6,155
License
BSD-3-Clause
Repository
github
Last release
7 years ago

Dig Dug

ディグダグ

Build Status npm version Average time to resolve an issue Percentage of issues still open

Intern

Dig Dug is a simple abstraction library for downloading and launching WebDriver service tunnels and interacting with the REST APIs of these services.

Dig Dug can run a local Selenium server, and it supports the following cloud testing services:

Configuration

In many cases, the only configuration you'll need to do to create a tunnel is provide authentication data. This can be provided by setting properties on tunnels or via environment variables. The tunnels use the following environment variables:

Tunnel classEnvironment variables
BrowserStackTunnelBROWSERSTACK_USERNAME, BROWSERSTACK_ACCESS_KEY
CrossBrowserTestingTunnelCBT_USERNAME, CBT_APIKEY
SauceLabsTunnelSAUCE_USERNAME, SAUCE_ACCESS_KEY
TestingBotTunnelTESTINGBOT_KEY, TESTINGBOT_SECRET

Other properties, such as the local port the tunnel should serve on or the URL of a proxy server the tunnel should go through, can be passed to a tunnel constructor or set on a tunnel instance. See the pages for Tunnel and the tunnel subclasses for available properties.

Usage

To create a new tunnel, import the desired tunnel class, create a new instance, and call its start method. start returns a Promise that resolves when the tunnel has successfully started. For example, to create a new Sauce Labs tunnel:

var SauceLabsTunnel = require('digdug/SauceLabsTunnel');
var tunnel = new SauceLabsTunnel();
tunnel.start().then(function () {
	// interact with the WebDriver server at tunnel.clientUrl
});

Once a tunnel has been started, a test runner interacts with it as described in the service's documentation. The Sauce Labs and TestingBot executables start a WebDriver server on localhost that the test client communicates with. To interact with BrowserStack, a test client will connect to hub.browserstack.com after the tunnel has started.

The tunnel classes also provide a sendJobState convenience method to let the remote service know whether a test session passed or failed. This method accepts a session ID and an object containing service-specific data, and it returns a Promise that resolves if the job state was successfully updated.

tunnel.sendJobState(sessionId, { success: true });

When testing is finished, call the tunnel's stop method to cleanly shut it down. This method returns a Promise that is resolved when the service tunnel executable has exited.

tunnel.stop().then(function () {
	// the tunnel has been shut down
});

Utilities

Dig Dug includes a utility script, digdugEnvironmnents. After the digdug package has been installed, run this script to get a list of environments provided by a particular testing service.

$ ./node_modules/.bin/digdugEnvironments SauceLabsTunnel
{"platform":"OS X 10.9","browserName":"firefox","version":"4"}
{"platform":"OS X 10.9","browserName":"firefox","version":"5"}
{"platform":"OS X 10.9","browserName":"firefox","version":"6"}
{"platform":"OS X 10.9","browserName":"firefox","version":"7"}
{"platform":"OS X 10.9","browserName":"firefox","version":"8"}
{"platform":"OS X 10.9","browserName":"firefox","version":"9"}
{"platform":"OS X 10.9","browserName":"firefox","version":"10"}
...

Note that BrowserStackTunnel requires that the BROWSERSTACK_ACCESS_KEY and BROWSERSTACK_USERNAME environment variables exist and are set to a user's account access key and username. The other tunnels do not (currently) require authentication to request an environment list.

API documentation

View API documentation

License

Dig Dug is a JS Foundation project offered under the New BSD license.

© SitePen, Inc. and its contributors

1.6.5

7 years ago

2.0.0-beta.4

7 years ago

2.0.0-beta.3

7 years ago

1.6.4

7 years ago

2.0.0-beta.2

7 years ago

2.0.0-beta.1

7 years ago

2.0.0-beta.0

7 years ago

1.6.3

7 years ago

1.6.2

7 years ago

1.6.1

7 years ago

1.6.0

7 years ago

1.5.2

8 years ago

1.5.1

8 years ago

1.5.0

8 years ago

1.4.1

8 years ago

1.4.0

8 years ago

1.3.2

9 years ago

1.3.1

9 years ago

1.3.0

9 years ago

1.2.1

9 years ago

1.2.0

9 years ago

1.1.0

10 years ago

1.0.0

10 years ago

1.0.0-rc1

10 years ago