Между ними наверняка есть некоторое совпадение. NUnit является предшественником, и в результате более зрелым. Инфраструктура модульного тестирования C # более молодая, но интегрирована с Visual Studio.
Я пришел из мира Java, где JUnit - король (есть другие, но ни один из них не столь популярен), и NUnit 2.5.x действительно хорошо подходит для работы JUnit 4. На самом деле, он работает намного лучше, чем аналог Java.
Что касается определения теста, я предпочитаю NUnit. Конечно, у MS Test есть похожие (но разные) атрибуты, которые вы применяете к своим классам, но я считаю, что в нем отсутствуют некоторые функции, которые могли бы сэкономить вам некоторую работу над некоторыми видами тестирования. Вы можете проверить подобное обсуждение StackOverflow .
Мне нравится новая модель утверждений, встроенная в NUnit (она использует утверждения стиля Hamcrest ), потому что они легко читаются и легко расширяемы.
- NUnit будет иметь лучшую стороннюю поддержку, MS Test будет иметь лучшую интеграцию (из коробки).
- NUnit будет иметь лучшую гибкость и расширяемость, MS Test пострадает в этой области.
- Оба запускают юнит-тесты и проверяют ваши результаты, оба будут работать на TDD.