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

grunt-moonwalker

v0.0.2

Published

Grunt task to launch Selenium IDE HTML files tests

Downloads

10

Readme

grunt-moonwalker

Executes Selenium IDE (selenese) tests and get a report of the execution.

This tool needs a Selenium standalone or grid server to be executed.

Getting Started

This plugin requires Grunt ~0.4.1

If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:

npm install grunt-moonwalker --save-dev

Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:

grunt.loadNpmTasks('grunt-moonwalker');

The "moonwalker" task

Overview

In your project's Gruntfile, add a section named moonwalker to the data object passed into grunt.initConfig().

grunt.initConfig({
  moonwalker: {
    options: {
      // Task-specific options go here.
    },
    your_target: {
      // Target-specific file lists and/or options go here.
    },
  },
})

Options

options.selenium

type: Object Default value: { host: 'localhost', port: 4444 }

Determine the host and port where the selenium server (standalone or grid) is reachable.

options.desiredCapabilities

type: Array Default value: [ { browserName: 'firefox' } ]

Determine the desired capabilities where the test will be executed.

options.phantomjs

type: Object Default value: { host: 'localhost', port: 8910 }

Determine the host and port where the Ghostdriver is reachable.

options.reporter

type: Array||Function Default value: console.log

Determine the reporter to show the messages of execution. This version uses by default console.log but a junit reporter has been provided aswell. Reporters could be a function or an array, where the first element of the array is the name of the reporter and the rest of elements are the arguments used by the reporter.

options.saucelabs

type: Object Default value: { host: 'ondemand.saucelabs.com', port: 80 } Requires to define :

  • accesskey
  • username

Determine the connection data to access to your account of saucelabs. Is required to add the accesskey and username.

Usage Examples

Default Config

In this example, the default config is used to execute the selenese test.

grunt.initConfig({
  moonwalker: {
    success: {
      src: [
        'path/to/the/selenese/test'
      ]
    }
  }
})

When this code is executed it will try to connect to a Selenium server in localhost port 4444 if the server is not reachable it will throw an error else it will execute the tests using Firefox so it's important to have Firefox installed aswell. We encourage to use the filter isFile using wildcards. This test will execute one test in one browser.

Extended Config without junit report

In this example, we are adding more specific configuration to execute the selenese tests inside seleneseTests folder in two different browsers, Chrome and PhantomJS.

grunt.initConfig({
  moonwalker: {
    success: {
      src: [
        'path/to/the/seleneseTests/**'
      ],
      filter: 'isFile',
      options: {
        desiredCapabilities: [
          {
            browserName: 'chrome'
          },
          {
            browserName: 'phantomjs'
          }
        ]
      }
    }
  }
})

When this code is executed it will try to connect to a Selenium server in localhost port 4444 if the server is not reachable
it will throw an error, it will also will try to connect to the GhostDriver in localhost port 8910 if GhostDriever is not reachable
it will throw an error else it will execute the tests using Chrome and Phantomjs so it's important to have Chrome and Phantomjs installed aswell.
We use the [filter `isFile`](http://gruntjs.com/configuring-tasks) using wildcards to avoid iterate over folders.
This test will execute all the tests inside the folder in two browsers.

#### Extended Config with junit report
In this example, we are adding more specific configuration to execute the selenese tests inside `seleneseTests` folder in two different browsers, Chrome and PhantomJS and get a junit compatible report.

```js
grunt.initConfig({
  moonwalker: {
    success: {
      src: [
        'path/to/the/seleneseTests/**'
      ],
      filter: 'isFile',
      options: {
        desiredCapabilities: [
          {
            browserName: 'chrome'
          },
          {
            browserName: 'phantomjs'
          }
        ],
        reporter: ['junit', 'path/where/save/the/report.xml']
      }
    }
  }
})

When this code is executed it will try to connect to a Selenium server in localhost port 4444 if the server is not reachable
it will throw an error, it will also will try to connect to the GhostDriver in localhost port 8910 if GhostDriever is not reachable
it will throw an error else it will execute the tests using Chrome and Phantomjs so it's important to have Chrome and Phantomjs installed aswell.
We use the [filter `isFile`](http://gruntjs.com/configuring-tasks) using wildcards to avoid iterate over folders.
The reporter will save all the information about the execution of tests in junit compatible report.
This test will execute all the tests inside the folder in two browsers and creates a junit xml compatible report.

## Contributing
In lieu of a formal style guide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using [Grunt](http://gruntjs.com/).

## Release History

* 0.0.1: First release.