I'm new to unit testing and I'm a bit confused on how to use setUp and tearDown. It seems as though setUp is run before every test, and not once before all the tests. Therefore, it makes sense that there should be a way to choose the setUp according to the test being run. For example: If running a test called testCloseProg that closes a program, setUp should open the program, and for other tests not (or another example). I could find no way of doing this. In that case, why is setUp run before each test?