Вы говорите, что плохо знакомы с msbuild ... ну, msbuild - это метаязык на основе xml, используемый главным образом для управления компиляцией кода. В качестве метаязыка его можно использовать практически для всего. Основными строительными блоками в нем являются задачи. Помимо встроенных стандартных задач, вы можете писать собственные задачи на c #, и, следовательно, у вас нет ограничений на то, что может делать msbuild. Плюс встроенная задача Exec означает, что вы можете вызывать любой exe.
Так вот, он смотрит на то, что он может сделать, а не на то, что он лучше всего делает. Сила в msbuild заключается в дополнительном аспекте сборки. Как я уже говорил ранее, это прежде всего для управления компиляцией кода. Функция инкрементной сборки позволяет ускорить сборку, поскольку только измененные файлы каскадно выводят их результаты. Это продвинутый аспект msbuild, но в этом его сила.
Можно ли его использовать для тестирования? Ну, как он может сделать что-нибудь, конечно, может. Если вы используете TFS2005 / 8, то вызываемый скрипт msbuild teambuild уже выполняет тестирование и публикует результаты обратно на сервер TFS. (То же самое возможно в TFS2010, но только с использованием шаблона сборки Upgrade).
Интеграция с TFS зависит от того, что вы подразумеваете под этим. Msbuild был движком сборки для TFS2005 / 8, и поэтому он не стал намного более интегрированным, чем это. На TFS2010 он все еще используется для компиляции решений, но WF4 сейчас является движком сборки. Для совместимости все задачи msbuild для TFS2005 / 8 также доступны в TFS2010.
Итак, если вы используете TFS, то с одной стороны вы уже интегрируете msbuild и TFS.