The result is Feta. Feta will allow you (via the Chrome devtools extension) to record a series of behaviours in your webapp (one page apps only, for the moment). When you stop recording, Feta produces a reusable test that can be run independently of the Chrome extension (or Feta itself).
The test scripts can also be run by PhantomJS, in order to add regression testing to your continuous integration pipeline.
So far I’ve been able to use it to regression test maintenance deployments at work, and the results are promising.
I’d appreciate any feedback or feature suggestions.
Check out the project page for more details and a walkthrough video.
Typically when (browser based) distributables are include in a Github project they’re added to the gh-pages branch. This is done to avoid having duplicate changes in the commit logs for the source and distributable. For example, changing a variable name in source, rebuilding, and then committing, would result in a commit containing a diff to the source AND each built distributable file.
However, there are use cases for having the distributable on your master branch, and I’ve developed a solution (of sorts) to make it work in a fairly clean manner.
For Blanket.js, I like to provide 4 distributable files, a QUnit and Jasmine build, and a minified version of each. Adding these 4 files to a gh-pages branch is too much overhead. I rebuild the project after each change to run my tests anyway, so I’d rather just have the new distributables live in master and be available after each commit to master.
Enter, .gitattributes. Creating a .gitattributes file allows you to change the git attributes of given files. According to the documentation you can tell git to handle your file as binary, so diffs won’t be created:
In practice, this didn’t work for me on GitHub (maybe it ignores the git attribute on files that have already been tracked?). I have to change the merge attribute to union (which may not always give the intended result), but it works for me (I also run the distributables through tests on the CI):
You can see a Pull Request without and with the git attributes in place (I’m aware that I’m probably getting the right result for the wrong reasons, but the approach should work in theory if done correctly).