/real-test

Package that provides real e2e tests

Primary LanguageJavaScriptMIT LicenseMIT

Real-Test

Build Status

Package that provides real e2e tests.

Installation

$ sudo apt-get install xvfb # just to run hidden tests
$ npm install -g nightwatch
$ npm install -g real-test

Quick Start

  • IMPORTANT: CHANGE THE PATH IN CONFIG FILE BEFORE ANYTHING
$ real-test -c /home/user/documents/configs/example.json

to see more options:

$ real-test -h

Advantages

  • Real test E2E
  • Easy to write tests
  • Componentized

Configuration

  • You can set global variables, these variables will change in tests files (example: {"action": "pause", "value": "!!timeout"})
  {
    "name": "CONFIG_A",
    "path": "/home/user/documents/tests",        "path where the app will read the tests"
    "variables":{
      "search": "real-test github lucasvmiguel"
    }
  }

Actions

  • Header: some information to test(needs be the first action)
  • IMPORTANT: you can't write action header with 'only' and 'notOnly' at same time
  {
    "action": "header",
    "type": "helper",            "THIS IS NEEDED WHEN A FILE WILL BE IMPORTED"
    "only": "CONFIG_NAME_A",     "USE IT"
    "notOnly": "CONFIG_NAME_B"   "OR USE IT"
  }
  • Import: import json inside test
  • IMPORTANT: You need set header type helper to import a file
  {
    "action": "import",
    "value": "Login"
  }
  • Assert: compare something
  {
    "action": "assert",
    "type": "urlContains|urlEquals|elemExists|elemNotExists|text|containsText",
    "value": "notebook (required only with type text or containsText)",
    "timeout": 10000
  }
  • Cookie: write
  {
    "action": "cookie",
    "type": "write",
    "value": "b2b"
  }
  • Click: click on selector
  {
    "action": "click",
    "required": true,
    "selector": "#nav-search > form > div.nav-right > div > input"
  }
  • Resize: resize the screen
  {
    "action": "resize",
    "value": "desktop|mobile|tablet"
  }
  • Log: log into console
  {
    "action": "log",
    "value": "message"
  }
  • Pause: Pause the test for X milliseconds
  {
    "action": "pause",
    "value": 5000
  }
  • Write: Write text
  {
    "action": "write",
    "timeout": 5000,
    "value": "message",
    "selector": "#nav-search > form > div.nav-right > div > input",
    "require": true
  }
  • Url: Access url
  {
    "action": "url",
    "value": "http://example.com.br"
  }

All actions are in actions folder

License

MIT