У меня есть метод тестирования, который вызывает 2 метода субтеста. Оба вспомогательных метода - Data Driven из файла XML. Если я запускаю каждый вспомогательный метод, они работают нормально и успешно. Однако, когда я запускаю главный метод тестирования (вызывающий оба вспомогательных метода), он находит TestContext.DataConnection и TestContext.DataRow равным нулю.Ед. Тест TestContext Несколько вызовов
private TestContext testContext;
public TestContext TestContext
{
get { return testContext; }
set { testContext = value; }
}
[TestMethod]
public void SaveEmpty_Json_LocalStorage()
{
// Testing JSON Type format export and save
SetWindowsUsers();
// Add Network Information
SetWifiInformation();
// More logic and assertions here.
// More logic and assertions here.
// More logic and assertions here.
}
[TestMethod]
[DeploymentItem("input.xml")]
[DataSource("Microsoft.VisualStudio.TestTools.DataSource.XML",
"input.xml",
"User",
DataAccessMethod.Sequential)]
public void SetWindowsUsers()
{
Console.WriteLine(TestContext.DataRow["UserName"].ToString())
// MORE LOGIC and Asserts
}
[TestMethod]
[DeploymentItem("input.xml")]
[DataSource("Microsoft.VisualStudio.TestTools.DataSource.XML",
"input.xml",
"WifiList",
DataAccessMethod.Sequential)]
public void SetWifiInformation()
{
Console.WriteLine(TestContext.DataRow["SSID"].ToString())
// MORE LOGIC and Asserts
}
Если я запустил все, 2 метода передаются и 1 не удается. Если я запускаю индивидуально, SaveData_Json_LocalStorage не проходит, всегда получает TestContext.DataRow как null. Можно ли вызвать несколько методов внутри. Каков наилучший способ написания прикованных тестовых случаев.
Я никогда не видел атрибуты 'DeploymentItem' и' DataSource', но я уверен, что они являются источником вашей проблемы. Атрибуты на самом деле ничего не делают сами по себе. Для этого вам нужна единая тестовая среда, чтобы что-то сделать с ними. (Настройте свои данные в этом случае.) Когда вы вызываете 'SetWindowsUsers' и' SetWifiInformation' напрямую, эта настройка на основе атрибутов не выполняется. –
В целом вам следует избегать цепочки тестовых случаев. Определить порядок исполнения можно только с помощью Test Runner. Вместо этого используйте общий метод настройки для тестовых случаев. – Henrik
@JasonWatkins Когда я вызываю SetWindowsUsers и SetWifiInformation напрямую, оба атрибута «DataSource» и DeploymentItems отлично работают, и я получаю Data from XML и Test pass. Я не получил свой TestContext.DataRow как null. Эти два атрибута довольно стандартизированы и используются для тестовых примеров Data Driven. – rocky