每次编码ui测试后失去焦点

时间:2014-11-12 14:35:08

标签: c# visual-studio coded-ui-tests

我有两个测试用例: 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不会失去焦点。我已将所有测试迁移到它。

2 个答案:

答案 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;
}