Этот код консольного приложения вызывает MSTest и начинает запускать модульное тестирование, но завершается с ошибкой «Отказано в доступе» к некоторым сборкам, необходимым для модульного тестирования (см. Код ошибки ниже). Есть ли какой-нибудь способ плавно заставить MSTest работать от имени администратора?
Я попробовал манифест, ничего не изменил, так как манифест относится к вызывающему приложению, а не к mstest, верно?
Также попытался указать ProcessStartInfo.Username и Password, но Password требует какой-то особой SecureString, и это НЕ приложение интерактивной консоли, оно вызывается SVN на хуке перед фиксацией.
private static string MSTest()
{
if (File.Exists(@"C:\temp\TestProject1.trx"))
{
File.Delete(@"C:\temp\TestProject1.trx");
}
Process process = new Process();
ProcessStartInfo psi = new ProcessStartInfo();
psi.FileName = @"C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\MSTest.exe";
psi.Arguments = String.Format
(
"/testcontainer:{0} /resultsfile:{1} /nologo",
@"C:\Users\johndoe\Documents\SVN_TEST\Test\branches\johndoe\WebApplication1\TestProject1\bin\Debug\TestProject1.dll",
@"C:\temp\TestProject1.trx"
);
psi.UseShellExecute = false;
psi.RedirectStandardOutput = true;
psi.RedirectStandardError = true;
process.StartInfo = psi;
process.Start();
string output = process.StandardOutput.ReadToEnd();
process.WaitForExit();
return output;
}
Ошибка: фиксация не удалась (подробности следуют):
Ошибка: фиксация заблокирована ловушкой предварительной фиксации (код выхода 1) с выводом:
Ошибка: загрузка C: \ Users \ johndoe \ Documents \ SVN_TEST \ Test \ branch \ johndoe \ WebApplication1 \ TestProject1 \ bin \ Debug \ TestProject1.dll ...
Ошибка: запуск выполнения ...
Ошибка:
Ошибка: результаты тестов верхнего уровня
Ошибка: ------- ---------------
Ошибка: сбой TestProject1.BankTest.DebitTest
Ошибка: 0/1 тестов пройдено, 1 не пройдено
Ошибка:
Ошибка: сводка
Ошибка: -------
Ошибка: сбой тестового прогона.
Ошибка: Ошибка 1
Ошибка: ---------
Ошибка: всего 1
Ошибка: файл результатов: C: \ temp \ TestProject1.trx
Ошибка: настройки теста: настройки теста по умолчанию
Ошибка:
Ошибка: Запуск имеет следующие проблемы:
Ошибка: Предупреждение: проблема с развертыванием тестового прогона: не удалось развернуть зависимости для теста
Ошибка: хранилище
Ошибка: 'c: \ users \ johndoe \ documents \ svn_test \ test \ branch \ johndoe \ webapplication1 \ testproject1 \ bin \ debug \ testproject1.dll':
Ошибка: System.IO.FileLoadException: не удалось загрузить файл или сборку
Ошибка: 'Microsoft.VisualStudio.QualityTools.Tips.UnitTest.AssemblyResolver,
Ошибка: версия = 10.0.0.0, культура = нейтральная, PublicKeyToken = b03f5f7f11d50a3a 'или одна из
Ошибка: ее зависимости. Доступ запрещен.
Ошибка: Имя файла: 'Microsoft.VisualStudio.QualityTools.Tips.UnitTest.AssemblyResolver,
Ошибка: версия = 10.0.0.0, культура = нейтральная, PublicKeyToken = b03f5f7f11d50a3a '
Ошибка: в System.Reflection.RuntimeAssembly._nLoad (AssemblyName fileName, String
Ошибка: codeBase, Evidence AssemblySecurity, Местоположение RuntimeAssemblyHint,
Ошибка: StackCrawlMark & stackMark, Boolean throwOnFileNotFound, Boolean
Ошибка: для самоанализа, логическое подавление проверки безопасности)
Ошибка: в System.Reflection.RuntimeAssembly.nLoad (AssemblyName fileName, String
Ошибка: codeBase, сборка доказательств безопасности, место выполнения, сборка, подсказка,
Ошибка: StackCrawlMark & stackMark, Boolean throwOnFileNotFound, Boolean
Ошибка: forIntrospection, Boolean suppressSecurityChecks)
Ошибка: в System.Reflection.RuntimeAssembly.InternalLoadAssemblyName (AssemblyName
Ошибка: AssemblyRef, Evidence AssemblySecurity, StackCrawlMark & stackMark, Boolean
Ошибка: forIntrospection, Boolean suppressSecurityChecks)
Ошибка: в System.Reflection.RuntimeAssembly.InternalLoad (String assemblyString,
Ошибка: доказательство сборки безопасности, StackCrawlMark & stackMark, Boolean forIntrospection)
Ошибка: в System.Activator.CreateInstance (String assemblyName, String typeName,
Ошибка: логическое значение ignoreCase, BindingFlags bindingAttr, Binder Binder, Object [] args,
Ошибка: CultureInfo culture, Object [] активацияAttributes, Evidence securityInfo,
Ошибка: StackCrawlMark & stackMark)
Ошибка: в System.Activator.CreateInstance (String assemblyName, String typeName,
Ошибка: логическое значение ignoreCase, BindingFlags bindingAttr, Binder Binder, Object [] args,
Ошибка: CultureInfo culture, Object [] активацияAttributes, Evidence securityInfo)
Ошибка: в System.AppDomain.CreateInstance (String assemblyName, String typeName,
Ошибка: логическое значение ignoreCase, BindingFlags bindingAttr, Binder Binder, Object [] args,
Ошибка: CultureInfo culture, Object [] activAttributes, Evidence securityAttributes)
Ошибка: в System.AppDomain.CreateInstanceAndUnwrap (String assemblyName, String
Ошибка: typeName, логическое значение ignoreCase, BindingFlags bindingAttr, связыватель связывателя, Object [] 10]* Ошибка: args, CultureInfo culture, Object [] activAttributes, Evidence securityAttributes)
Ошибка: в System.AppDomain.CreateInstanceAndUnwrap (String assemblyName, String
Ошибка: typeName, логическое значение ignoreCase, BindingFlags bindingAttr, связыватель объекта, связыватель,]
Ошибка: args, CultureInfo culture, Object [] ActivationAttributes, Evidence securityAttributes)
Ошибка: at
Ошибка: Microsoft.VisualStudio.TestTools.Utility.AssemblyLoadStrategy.GetDependentAssemblies (String
Ошибка: путь)
Ошибка: в
Ошибка: Microsoft.VisualStudio.TestTools.Utility.AssemblyHelper.GetDependentAssemblies (String
Ошибка: путь, параметры DependentAssemblyOptions, строка конфигурации файла)
Ошибка: в
Ошибка:Microsoft.VisualStudio.TestTools.TestManagement.DeploymentManager.GetDependencies (String
Ошибка: master, String configFile, TestRunConfiguration runConfig, DeploymentItemOrigin
Ошибка: dependencyOrigin, список 1 dependencyDeploymentItems, Dictionary
2 отсутствующих зависимых элементов: 1076 * 2: ошибки 1077 *: ошибкиОшибка: Microsoft.VisualStudio.TestTools.TestManagement.DeploymentManager.ProcessNewStorage (String
Ошибка: testStorage, помощник DeploymentHelper, DeploymentItemOriginType originType,
Ошибка: список 1 deploymentCoverageItems, TestRunConfiguration runConfig, List
1
Ошибка: зависимый словарь для исключения