Tôi có Phương pháp thử nghiệm đang gọi 2 Phương thức thử nghiệm phụ. Cả hai phương thức con là Data Driven từ một tệp XML. Nếu tôi chạy từng phương thức con, chúng chạy tốt và thành công. Tuy nhiên, khi tôi chạy phương pháp thử nghiệm chính (người gọi của cả hai phương pháp phụ) nó tìm thấy TestContext.DataConnection và TestContext.DataRow là null.Kiểm tra đơn vị TestContext Nhiều cuộc gọi
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
}
Nếu tôi chạy tất cả, 2 phương thức vượt qua và 1 lỗi. Nếu tôi chạy riêng lẻ, SaveData_Json_LocalStorage Không vượt qua, luôn luôn nhận được TestContext.DataRow là null. Có thể gọi nhiều phương thức bên trong không. Cách tốt nhất để viết các trường hợp kiểm tra xích.
Tôi chưa bao giờ thực sự nhìn thấy thuộc tính 'DeploymentItem' và' DataSource', nhưng tôi chắc rằng chúng là nguồn gốc của vấn đề của bạn. Các thuộc tính không thực sự làm bất cứ điều gì một mình. Bạn cần khung kiểm thử đơn vị để làm điều gì đó với họ. (Thiết lập dữ liệu của bạn trong trường hợp này.) Khi bạn gọi 'SetWindowsUsers' và' SetWifiInformation' trực tiếp, thiết lập dựa trên thuộc tính đó không được thực hiện. –
Nói chung, bạn nên tránh các trường hợp kiểm tra chuỗi. Tùy thuộc vào Test Runner để quyết định thứ tự thực hiện. Thay vào đó, hãy sử dụng phương pháp thiết lập chung cho các trường hợp thử nghiệm. – Henrik
@JasonWatkins Khi tôi gọi SetWindowsUsers và SetWifiInformation trực tiếp, cả hai thuộc tính "DataSource" và DeploymentItems hoạt động tốt và tôi nhận được dữ liệu từ XML và kiểm tra vượt qua. Tôi không nhận được TestContext.DataRow của tôi là null. Hai thuộc tính này khá chuẩn và được sử dụng cho các trường hợp Kiểm tra theo dõi dữ liệu – rocky