Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在每次编码的ui测试后失去焦点_C#_Visual Studio_Coded Ui Tests - Fatal编程技术网

C# 在每次编码的ui测试后失去焦点

C# 在每次编码的ui测试后失去焦点,c#,visual-studio,coded-ui-tests,C#,Visual Studio,Coded Ui Tests,我有两个测试用例: 1.点击按钮。然后出现文本框。它会一直显示直到它聚焦。 2.在文本框中输入一些文本 两个测试用例都在两个单独的测试方法中。当第一次测试通过时,焦点转到VisualStudio。我猜这是因为以某种方式将结果保存在工作室中。如果两个动作都在同一个TestMethod中,它就可以正常工作,但我需要它在不同的测试中。有没有办法不去VS而专注于应用程序 以下是这些方法: [TestMethod] public void _01_Test_45040_AddProjectButtonCl

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

两个测试用例都在两个单独的测试方法中。当第一次测试通过时,焦点转到VisualStudio。我猜这是因为以某种方式将结果保存在工作室中。如果两个动作都在同一个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;
}
[TestMethod]
公共无效_01_测试_45040_添加项目按钮单击()
{
//ai.LeftPanelProjects.AddProjectButton.Click();
WpfButton btnAddProj=CommonActions.GetControl(应用程序,“AddButton”);
btnAddProj.ClickField();
}
[测试方法]
公共无效_02_测试_45041_类型项目名称()
{
WpfEdit txtProjName=CommonActions.GetControl(应用程序,“NewProjectTextBox”);
txtProjName.Text=projectName;
}

UPD:如果使用nUnit运行测试,则不会出现此问题。出于某种原因,它不会失去焦点。我已将所有测试迁移到它。

您不能这样做。这是两个不同的测试用例。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;
}
[TestMethod]
公共无效_02_测试_45041_类型项目名称()
{
WpfButton btnAddProj=CommonActions.GetControl(应用程序,“AddButton”);
WpfEdit txtProjName=CommonActions.GetControl(应用程序,“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;
}
[TestMethod]
公共无效_01_测试_45040_添加项目按钮单击()
{
//ai.LeftPanelProjects.AddProjectButton.Click();
WpfButton btnAddProj=CommonActions.GetControl(应用程序,“AddButton”);
btnAddProj.ClickField();
//调用第二个方法
_02_测试_45041_类型项目名称();
}
[测试方法]
公共无效_02_测试_45041_类型项目名称()
{
WpfEdit txtProjName=CommonActions.GetControl(应用程序,“NewProjectTextBox”);
txtProjName.Text=projectName;
}

可能您设置了一些断点?没有。它完全在测试完成后发生,即使是在“运行测试”模式下,而不是在“调试测试”模式下。所以它不是由断点引起的。你能给我看看你的代码吗?如果不查看它的代码并在第一条消息中添加代码,就很难预测。我认为这是因为testmethod属性。试着把它去掉,我想这是唯一的办法。谢谢。那样的话,我就不能只开始第一次测试了。而且,我认为这不是一个好的做法。