Another thing about integration tests is the add more test statuses
- code is bad (failed test)
- server wasn't available (code is indeterminate quality)
- code is good (everything worked)
Because of the indeterminancy, integration tests need to be separated from pure unit tests & run on a different interval & have a different policy when they are indeterminate, cf pure unit test failures which should always fail the whole build.