每次编码的 UI 测试后失去焦点

本文关键字:失去 焦点 测试 UI 编码 | 更新日期: 2023-09-27 18:30:16

我有两个测试用例:1. 点击按钮。之后 文本框 出现。它显示直到它有焦点。2.在文本框中放置一些文本。

这两个测试用例都在两个单独的测试方法中。当第一个测试通过时,焦点转到视觉工作室。我想这是因为以某种方式将结果保存在工作室中。如果两个操作都在同一个 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 不会失去焦点。我已经将所有测试迁移到它。

每次编码的 UI 测试后失去焦点

你不能

那样做。这是两个不同的测试用例。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;
}

如果要将它们保留在单独的测试中,则可以从第一个方法调用第二个方法。它转到 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;
}