Ho un metodo di prova che chiama 2 metodi di test secondario. Entrambi i metodi secondari sono basati su dati da un file XML. Se eseguo ciascun sottoprogramma, funzionano correttamente e con successo. Tuttavia, quando eseguo il Metodo di prova principale (chiamante di entrambi i metodi secondari) trova TestContext.DataConnection e TestContext.DataRow come null.Test unità TestContext Chiamate multiple
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
}
Se corro tutto, passano 2 metodi e 1 non riesce. Se corro individualmente, SaveData_Json_LocalStorage non passa, ottiene sempre TestContext.DataRow come null. Va bene chiamare più metodi all'interno. Qual è il modo migliore per scrivere casi di test concatenati.
Non ho mai visto gli attributi 'DeploymentItem' e' DataSource', ma sono abbastanza sicuro che siano la fonte del problema. Gli attributi in realtà non fanno nulla da soli. Hai bisogno del quadro di test unitario per fare qualcosa con loro. (Configura i tuoi dati in questo caso.) Quando chiami "SetWindowsUsers" e "SetWifiInformation' direttamente, questa impostazione basata sugli attributi non viene eseguita. –
In generale si dovrebbe evitare di concatenare i casi di test. Spetta al Test Runner decidere l'ordine di esecuzione. Utilizzare invece un metodo di configurazione generale per i casi di test. – Henrik
@JasonWatkins Quando chiamo SetWindowsUsers e SetWifiInformation direttamente, entrambi gli attributi "DataSource" e DeploymentItems funzionano correttamente e ottengo Dati da XML e Test pass. Non ottengo il mio TestContext.DataRow come null. Questi due attributi sono piuttosto standard e usati per i casi Test Data Driven – rocky