tattoo v2.0.0
Tattoo
Test all the things over and over.
Installation
npm install -g tattooGitHub token
- Generate a GitHub token here: https://github.com/settings/tokens
- Put the token in a file called
github-tokenin your working dir
Usage
When you run tattoo, it will create and/or reuse a directory called
./tattoo_workspace, relative to the current working dir. This folder is
used to clone test target repositories and their dependencies. You can change
the directory used with the --workspace-dir or -w option.
Test one repo
tattoo PolymerElements/paper-inputThis is the simplest possible case. What actually happens here is that tattoo
clones the repository https://github.com/PolymerElements/paper-input into the
local filesystem as ./tattoo_workspace/paper-input, installs all of the
dependencies and devDependencies in its bower.json also into
./tattoo_workspace. Then it essentially runs
cd ./tattoo_workspace/paper-input && wct --local chrome.
Test two repos
tattoo PolymerElements/paper-input PolymerElements/paper-icon-buttonIn this case, tattoo clones both repositories into ./tattoo_workspace as
paper-input and paper-icon-button, then installs all of their combined
dependencies and devDependencies into ./tattoo_workspace. Conflicts in
dependencies are currently resolved arbitrarily, but there's an
issue (#24) to address that.
It then runs wct for both custom element repos.
Test all the paper repos
tattoo PolymerElements/paper-*Tattoo supports wildcards in repository references so the above actually clones
all the PolymerElements repos that start with paper-, installs their
dependencies and runs wct for all of the paper element repos.
Test all the paper repos on a specific branch
tattoo "PolymerElements/paper-*#2.0-preview"In the previous examples, tattoo cloned the requested repositories and simply
ran tests on whatever HEAD of their repo is, (typically master branch). It
is frequently the case that a specific branch, tag or commit/SHA1 reference is
the desired target for test. Tattoo supports this with the #hashref syntax
so the above example PolymerElements/paper-*#2.0-preview would tell tattoo
to run tests for all the paper- elements which have a branch called
2.0-preview. If the branch name is invalid for a given repo, it should be
skipped/excluded.
Test all the repos except that one
tattoo PolymerElements/* -s PolymerElements/style-guideTest repos with different browser
tattoo PolymerElements/* --wct-flags="--local safari"Test repos with a config.
Create a tattoo_config.json file to persist a base of options to tattoo. For
example:
{
"test": [
"PolymerElements/paper-*"
],
"require": [
"Polymer/polymer#2.0-preview"
]
"verbose": true,
"wctflags": ["--local canary", "--color"]
}Tattoo will automatically find that file, load its options, and then apply any additional command line arguments. So you could simply run with the config as-is by typing:
tattooOr test the paper-button repo and the paper-hat repo by typing the
following, since paper-button is in the config and arguments are additive.
tattoo PolymerElements/paper-hatConfig files support most of the same options as the command-line flags:
"test": ["PolymerElements/paper-button#2.0-preview", "PolymerElements/*", etc]Repositories to test."require": ["PolymerElements/iron-list", "PolymerElements/paper-*", etc]Explicit repos to clone into workspace, but not test. This is useful if you want to force a specific version of a web package that wouldn't be installed by default."exclude": ["PolymerElements/style-guide", "*/*-deprecated", etc]Repositories not to load. Filters out items from thetestandrequirelist."skip-test": ["PolymerElements/iron-meta", "*/*-alpha", etc]Repositories not to test."fresh": true|falseClears the workspace for each run, i.e. will clone all repos from remote instead of updating local copies."github-token": "0123456789ABCDEF1337"Provide a github token via this setting instead of using "github-token" file."verbose": true|falseWhen true, output all the things."wct-flags": ["--local chrome"]Set to specify flags passed to wct."workspace-dir": "/tmp/tattoo-workspace"Specify a different target folder to clone repos and run web-component-tester from.
Clean up installation
rm -rf tattoo_workspaceOr start with a fresh workspace as part of command
tattoo -fGet help on the cli
tattoo -h
tattoo (test all the things over & over)
Runs the web-component-tester on custom element git repositories.
Run test for a specific GitHub repository:
$ tattoo PolymerElements/paper-button
Run test for a whole bunch of GitHub repositories:
$ tattoo PolymerElements/paper-*
See more examples at https://github.com/Polymer/tattoo
Options
-t, --test string[] Repositories to test. (This is the default
option, so the --test/-t switch itself is not
required.)
-s, --skip-test string[] Repositories not to test. Overrides the values
from the --test
-r, --require string[] Explicit repos to load. Specifying explicit
repos will disable running on the default set of
repos for the user.
-e, --exclude string[] Repositories not to load. Overrides the values
from the --repo and --test flag.
-f, --fresh Set to clone all repos from remote instead of
updating local copies.
-c, --config-file string Specify path to a json file which contains base
configuration values. Command-line options
supercede values in file where they differ. If
file is missing, Tattoo will ignore.
-C, --color string Set to "off" if you do not want color in your
output. Defaults to "on".
-g, --github-token string Provide github token via command-line flag
instead of "github-token" file.
-v, --verbose Set to print output from failed tests.
-w, --wct-flags string[] Set to specify flags passed to wct.
-d, --workspace-dir string Override the default path "tattoo_workspace"
where the repositories will be cloned and web-
component-tester will run.
-h, --help Print this usage example.
-V, --version Print out the version of tattoo.8 years ago
9 years ago
9 years ago
9 years ago
10 years ago
10 years ago
10 years ago