Похоже, вы пытаетесь передать один из аргументов командной строки mstest.exe в msbuild.exe, верно?Не уверен, как вы ожидаете, что это будет работать, msbuild.exe не понимает их.Предположительно, вы используете msbuild для вызова mstest в задаче Exec, или тесты выполняются другими способами?В любом случае ключ / category: ... необходимо передать в вызов mstest.exe.Вы можете сделать так, чтобы ваш скрипт msbuild принимал правильный параметр msbuild и преобразовывал его в тот, который распознается mstest, например:
>msbuid My.proj /p:mstestcat=cat1%26cat2
Это передает новое действительное свойство msbuild с именем $ (mstestcat).% 26 - это способ msbuild избежать символа «&».Когда вы вызываете mstest.exe внутри msbuild, сделайте что-то вроде этого,
<Exec
Command="mstest.exe ... /category:$(mstestcat)"
...
/>