From the Test agent, Test Controller and MSTEST FAQ:
Will Test Agents allow you to impersonate another user? Or does the
Test Agent always kick of tests as the user its configured start up
as?
There is no built in support for impersonation, so by default tests
run under the identity of the test agent. If this is something you
really need, you could write a unit test extension that does the
impersonation for you.
You can potentially also turn this behavior into your advantage: run an MSTest agent under an elevated account and dispatch your test runs to be executed by this MSTest agent. To configure this, please read: Create Test Settings to Run Automated Tests from Visual Studio. This will allow you to run your test to be executed under the account ofn desire, without having to explicitly impersonate your user all the time.