in reply to Skip Vs. Fail
I'm kind of with choedebeck here -- I'm unsure as to where you'd be unsure.
A passing test means "I expect the bit of functionality I just tested to work". A failing test means "I expect the bit of functionality I just tested to not work". A skipped test means "I couldn't tell if this bit of functionality will work for you or not".
On the other hand, I interpret the env vars bit the other way. If the env var is needed for the /test/, but not the /functionality being tested/, then you should skip, since you can't say anything about the functionality. For example, if you have a module that accesses an online service, and the normal way of giving it an account is to pass the username and password to new, you need to give some way of letting the tests get a username and password. Obviously, if you don't have a username and password, you can't test much in this hypothetical module, and thus won't know if it'd work or not if they did pass something to new. If they didn't, then they aren't using your module correctly, and there's little way to test against misuse.
Warning: Unless otherwise stated, code is untested. Do not use without understanding. Code is posted in the hopes it is useful, but without warranty. All copyrights are relinquished into the public domain unless otherwise stated. I am not an angel. I am capable of error, and err on a fairly regular basis. If I made a mistake, please let me know (such as by replying to this node).