2016-09-14 8 views
1

У меня есть требование для запуска теста кодированного UI, который управляется данными из консольного приложения. Если я запустил тест кодированного интерфейса как автономный, то [DataSource] может получить доступ к значениям из файла CSV. Если я вызываю кодированный пользовательский интерфейс из консольного приложения, я получаю необработанное исключение: System.NullReferenceException: ссылка на объект не установлена ​​в экземпляр объекта. - поскольку TestContext.DataRow имеет значение null.Запуск кодированных данных ui из консольного приложения

Вот фрагмент из кода

Program.cs (консольное приложение):

public class Program 
{ 
    static void Main(string[] args) 
    { 
     Playback.Initialize(); 
     CodedUITestWarmup test = new CodedUITestWarmup(); 
     test.WarmUp(); 
     Playback.Cleanup(); 
    } 
} 

CodedUITestWarmup.cs (кодированный тест UI):

public class CodedUITestWarmup 
{ 
    [TestMethod]  
    [DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", @"|DataDirectory|\DataFiles\warmup.csv", "warmup#csv", DataAccessMethod.Sequential)] 
    public void WarmUp() 
    { 
     InitializeVendorTest(); 
     ... 
    } 

    private void InitializeVendorTest() 
    {  
     caseV = new CaseVariables(TestContext); 
     ... 
    }  
} 

class CaseVariables 
{ 
    public string lastNameID; 
    ... 

    public CaseVariables(TestContext TestContext) 
    { 
     lastNameID = TestContext.DataRow["lastNameID"].ToString(); 
     ... 
    } 
} 

Не могли бы вы предоставить несколько входов что можно сделать в этом отношении?

+0

Has файл CSV был развернут в каталог 'TestContext.DeploymentDirectory' как желательные' | DataDirectory | 'часть из' DataSource' атрибута. Вы должны изучить содержимое «TestContext.DeploymentDirectory» как в успешном, так и в неудачном прогонах. – AdrianHHH

ответ

0

Вы не можете запускать проверенный ui тест без vstestconsole.exe или из visual studio.

Вы можете попробовать запустить vstestconsole.exe с параметром (путь к вашей тестовой dll) например. C: \ Program Files (x86) \ Microsoft Visual Studio 11.0 \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TestWindow \ vstestconsole.exe

Dll файл будет создан во время каждой сборки проверочного codedui проекту

0

Почему вам нужен тест для запуска из консольного приложения? Я считаю, что вы можете использовать либо vstestconsole.exe, либо mstest.exe

vstestconsole - инструмент командной строки, который заменяет MStest. Но в этом случае я думаю, что любой из них может сделать то, что вы хотите!

Кодированный тест пользовательского интерфейса или модульный тест все равно должен быть инициализирован TestContext, и механизм тестирования несет ответственность за это, поэтому вы получаете исключение.

На моем компьютере исполняемый файл mstest находится в «c: \ Program Files (x86) \ Microsoft Visual Studio 12.0 \ Common7 \ IDE \" Поэтому я могу запустить командную строку, перейти в папку mstest.exe (один abouve) и использовать команду типа следующей:

mstest.exe /testcontainer:"c:/TestFolder/testassembly.dll" /test:"TestNamespace.MyTestToExecute_TestMethod1" 

 Смежные вопросы

  • Нет связанных вопросов^_^