Previously I discussed adding js components to make getting registry values easier, it would nice to have some tests in the process.
I actually rarely do tests actually. I shy away from them for several reasons, but I want to try and turn around this bad habit. I strongly dislike doing manual tests, because if something goes wrong and you get a fix, you have to make sure nothing else broke in the process. Thankfully, Mozilla offers some choice in doing your tests.
Starting Mochitest was acutally a problem. All your tests and utilities are in
mozobj/_tests/testing/mochitest/
. You must be in that directory when running the mochitests. The tricky bit seems to finding where exactly your tests are. There seems to be a few possiblities:
browser/*
chrome/*
tests/*
The directory structure follows the tree. For example, since FUEL's tests are in
mozilla/browser/fuel/test/
, the path to fuel's chrome tests (if it had any) would be in chrome/browser/fuel/test/
.The script running the tests is a perl script called
runtests.pl
. Depending on the parameters, it looks in different places
--chrome is the chrome/* directory
--browser-chrome is the browser/* directory
nothing is the tests/* directory
You can pass the
--test-path=browser/fuel/test/some_test.html
to do one unit test, or test the entire directory by doing --test-path=browser/fuel/test/ --auto-run
. If you leave --test-path=...
out, it will test everything. Since my code is in browser/
, I did the following command :perl runtests.pl --browser-chrome --test-path=browser/fuel/test/ --autorun
Predictably, it passed. That's because it wasn't testing a certain condition. I submitted a test case with the bug. I still know very little about how to create a Mochitest, but how to run the tests was just as important as the testcase itself. So in that sense, I am happy with the results.
Inspirational link
No comments:
Post a Comment