我有两个测试用例: 1.单击按钮。之后出现Textbox。它显示直到它有焦点。 2.在文本框中放入一些文本。
两个测试用例都在两个独立的TestMethods中。第一次测试通过时,焦点转到视觉工作室。我想这是因为以某种方式在工作室中保存结果。如果两个动作都在同一个TestMethod中,它可以正常工作,但我需要它在不同的测试中。有没有办法在不去VS的情况下继续关注应用程序?
这是方法:
[TestMethod]
public void _01_Test_45040_AddProjectButtonClick()
{
//ai.LeftPanelProjects.AddProjectButton.Click();
WpfButton btnAddProj = CommonActions.GetControl<WpfButton>(app, "AddButton");
btnAddProj.ClickField();
}
[TestMethod]
public void _02_Test_45041_TypeProjectName()
{
WpfEdit txtProjName = CommonActions.GetControl<WpfEdit>(app, "NewProjectTextBox");
txtProjName.Text = projectName;
}
UPD :如果使用nUnit运行测试,则不会出现此问题。出于某种原因,nUnit不会失去焦点。我已将所有测试迁移到它。
答案 0 :(得分:1)
你不能这样做。这是两个不同的测试用例。 TestCleanup()和TestInitialize()正在每次测试之间执行,因此它将始终返回VS.
为什么不在第二次测试中这样做?
[TestMethod]
public void _02_Test_45041_TypeProjectName()
{
WpfButton btnAddProj = CommonActions.GetControl<WpfButton>(app, "AddButton");
WpfEdit txtProjName = CommonActions.GetControl<WpfEdit>(app, "NewProjectTextBox");
btnAddProj.ClickField();
txtProjName.Text = projectName;
}
答案 1 :(得分:0)
如果您想将它们保存在单独的测试中,那么您可以从第一个方法调用第二个方法。 它转到VS,因为第一个测试方法已经完成了它的执行。 你可以这样做。
[TestMethod]
public void _01_Test_45040_AddProjectButtonClick()
{
//ai.LeftPanelProjects.AddProjectButton.Click();
WpfButton btnAddProj = CommonActions.GetControl<WpfButton>(app, "AddButton");
btnAddProj.ClickField();
//calling the second method
_02_Test_45041_TypeProjectName();
}
[TestMethod]
public void _02_Test_45041_TypeProjectName()
{
WpfEdit txtProjName = CommonActions.GetControl<WpfEdit>(app, "NewProjectTextBox");
txtProjName.Text = projectName;
}