title: How to Automate Testing
body: <p>I am wondering how to achieve a high level of automated testing. Currently we are quite strict with creating unit tests, and this works no problem. At the moment we are using TFS and a nightly build which runs all of our unit tests.</p>
  
  <p>What I am hoping to add are some automated integration, performance, and load tests. For all of these sorts of tests different parts of the system will have to interact with other parts of the system and with the file system and/or databases.</p>
  
  <p>I know this isn't allowed for unit tests and indeed we make sure we can mock any of those interactions for unit tests. However we would like to have some performance tests run and the data collected in a way which is something like 'x' takes 'y' long to run. If 'x' includes some file system reads in the real world then it needs to perform file reads in the tests, so the data is accurate.</p>
  
  <p>Are there any methods which help in achieving automated tests which rely on interaction with other components?</p>
  
  <p>At the moment we are doing all of this manually...</p>