The Flying Car Problem

.

Many free/open-source projects often suffer from a very specific feedback where it is assumed that a certain feature will not be implemented because of a philosophical reason. It is what I called as the "flying car" problem. As an illustration, with a lot of users and very few contributors, PhantomJS was bound to have that… Read more »

Third Time’s a Charm

.

Three years ago, the first version of PhantomJS was announced to the public. It is still a toddler, but hey, it is growing up and getting some traction at an unprecedented rate. Looking at the number of downloads over the last few years, the trend is obviously "up to the right", a total of over… Read more »

Code Coverage of Mocha Tests using Istanbul and Karma

.

Many JavaScript projects are using Mocha to run the unit tests. Combining Mocha with Istanbul and Karma, it is easy to track the code coverage of the application code when running the tests. While Mocha has a built-in support for running the tests from the command-line via Node.js, in some cases you still want to… Read more »

Code Coverage of QUnit Tests using Istanbul and Karma

.

QUnit, used by projects like jQuery and jQuery Mobile, is a rather popular JavaScript testing framework. For tests written using QUnit, how do we measure its code coverage? A possible solution which is quite easy to setup is to leverage the deadly combination of Karma and Istanbul. Just like our previous adventure with Jasmine code… Read more »

Code Coverage of Jasmine Tests using Istanbul and Karma

.

For modern web application development, having dozens of unit tests is not enough anymore. The actual code coverage of those tests would reveal if the application is thoroughly stressed or not. For tests written using the famous Jasmine test library, an easy way to have the coverage report is via Istanbul and Karma. For this… Read more »

Detecting JavaScript Libraries and Versions

.

In the spirit of making our web browsing activities more secure, often times we need to be aware of all the resources and assets being loaded by our important web sites (Internet banking, HR portal, and the likes). Fortunately, it is rather easy to programmatically inspect which JavaScript libraries are used by those sites. Using… Read more »