Ensure TearDownTest is called after Skip

Currently, if a test calls `suite.T().Skip()`, `TearDownTest` will not be called. This PR fixes that, and adds a corresponding test case.