Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.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
User interface 为什么在Visual Studio编码的UI测试中编辑UIMap.designer.cs文件不好?_User Interface_Automation_Coded Ui Tests_Qa - Fatal编程技术网

User interface 为什么在Visual Studio编码的UI测试中编辑UIMap.designer.cs文件不好?

User interface 为什么在Visual Studio编码的UI测试中编辑UIMap.designer.cs文件不好?,user-interface,automation,coded-ui-tests,qa,User Interface,Automation,Coded Ui Tests,Qa,我已经读到编辑UIMap.Designer.cs文件是不好的,但是我不明白为什么 根据MSDN: 不要直接修改UIMap.designer.cs文件。如果这样做,对该文件的更改将被覆盖 有人知道什么会被覆盖吗?这是否意味着如果在设计器文件之后编辑UIMap.uitest文件,则设计器文件将被反转?请提供帮助。每次编辑(保存)到UIMap.uitest文件后,UIMap.designer.cs文件将从UIMap.uitest文件重新生成。文件顶部有一条注释,说明这是一个生成的文件,编辑将丢失 乍一

我已经读到编辑UIMap.Designer.cs文件是不好的,但是我不明白为什么

根据MSDN: 不要直接修改UIMap.designer.cs文件。如果这样做,对该文件的更改将被覆盖


有人知道什么会被覆盖吗?这是否意味着如果在设计器文件之后编辑UIMap.uitest文件,则设计器文件将被反转?请提供帮助。

每次编辑(保存)到UIMap.uitest文件后,UIMap.designer.cs文件将从UIMap.uitest文件重新生成。文件顶部有一条注释,说明这是一个生成的文件,编辑将丢失

乍一看,需要编辑设计器文件中代码的大量更改可以通过UIMap编辑器中显示的操作和UI控件的属性面板进行编辑。有些更改确实需要手动编辑。对于这些操作,有一个命令(按钮或右键单击菜单)将操作移动到UIMap.cs文件中,在该文件中可以根据需要进行编辑和扩展。这两个UIMap…cs文件都在它们的类头中指定了
partial
,因此这两个文件都有助于相同的UIMap

当一个方法的一个动作需要手动编辑时,将该方法分成两到三部分,将需要编辑的动作放入自己的方法中是值得的。可通过按钮或右键单击菜单使用“拆分”命令。隔离动作后,其方法可以移动到UIMap.cs文件中

当移动方法并编辑它们时,我建议按照以下活动顺序进行

  • 如果需要:将方法拆分为多个部分,然后使用UIMap编辑器重命名拆分方法。保存导致重新生成设计器文件的UIMap.uitest文件。然后添加对拆分和重命名方法的调用。构建测试,并检查测试是否仍按预期工作

  • 使用UIMap编辑器将方法移动到UIMap.cs文件中

  • 保存导致重新生成设计器文件的所有文件。省略此“全部保存”可能会导致在C#文件上显示令人困惑的错误

  • 编辑刚刚移动到UIMap.cs文件中的代码


  • UI地图编辑器是Visual Studio 2012的标准配置。对于Visual Studio 2010,编辑器是由功能包2添加的。

    另一个选项是创建另一个类文件,例如,创建
    Class1.CS
    ,并将所有代码从
    UIMap.Designer.CS
    UIMap.CS
    移动到
    Class1.CS
    。现在,无论何时记录任何内容,重新生成的代码都会自动生成在
    UIMap.Designer.cs
    文件中,因此只要将相同的代码复制到
    Class1.cs
    并根据需要更改那里的代码,并且在运行主测试时只需调用
    this.Class1.launch()它将运行
    codedTest

    它还将使您免于拆分
    UIMap.uitest
    中的方法,然后将其移动到
    UIMap.cs

    甚至还有一个单独的类,包括对
    codedUItest

    的所有更改,在Visual Studio中打开UIMap.uitest文件,然后单击“将代码移动到UIMap.cs”


    您的函数将从
    designer.cs
    移动到
    UiMap.cs

    我不会把它作为一个答案,因为我对UiMap一无所知,但一般来说,如果您在任何地方看到designer.cs文件,这意味着负责生成该文件的任何人都可以自由重写它,可能是从头开始,只要您以正常方式修改主文件,就可以从头开始。所以基本上,是的,可能。谢谢,这很有意义。回答得很好。谢谢。在MTM中运行时如何?回答问题很好,但我没有看到其他旧答案中没有提到的任何内容。这个答案并没有解释为什么移动代码是有用的。