Chr*_*isM 0 automated-tests visual-studio-2010 coded-ui-tests
我试图在我的Microsoft Visual Studio 2010中实现AssemblyInitialize/AssemblyCleanup属性,其目的与此处所述的完全相同.该链接甚至描述了我需要遵循的实现代码的过程.
这个目的的快速摘要是创建一个初始代码块,它将在任何测试之前运行,无论我在解决方案中运行哪个codedUITests,然后是在最后一个codedUITest完成之后运行的代码块.示例:我需要打开一个特定的应用程序,然后运行一系列的encodeUITests,它们都从该应用程序开始,以任何顺序执行,然后在一切完成后关闭应用程序; 这比为每个codedUITest打开/关闭应用程序更有效.
我不明白的是我需要将代码放在该页面底部(也在下面显示).我把所有代码都放在我的'公共部分类UIMap'之下并且代码运行,除了它在每个CodedUITest之前/之后运行'OpenApplication'和'CloseApplication'命令,而不是将整个CodedUITests组合在一起.
如何正确实现代码?
更新:
我昨晚发现了AssemblyI/C,我花了3个小时试图找出放置代码的位置,以便它可以工作.如果我将AssemblyInitialize放在特定测试方法的开头,那么:
1)它仍然无法运行 - 它给了我一些错误,说UIMap.OpenWindow()和UIMap.CloseWindow()方法需要是静态的,我无法弄清楚如何使它们静态.
2)具有AssemblyI/C的特定[TestMethod]是否需要在测试集中?在我的情况下,我有十几个CodedUITests需要单独运行或在更大的组中运行,我需要让AssemblyI/C打开/关闭我正在测试的窗口.
Mic*_*eld 13
您已将方法添加到错误的类中.通过将其放入UIMap分部类,您告诉运行时每次创建新UIMap实例时都会运行这些方法,这听起来就像您正在进行每个测试.
ClassInitialize/ClassCleanup方法的要点是使用您的测试方法将它们添加到类中.您应该至少有一个使用该TestClass属性修饰的类,该类至少有一个用属性修饰的方法TestMethod.这是需要的类ClassInitialize和ClassCleanup属性应用到它.对于TestClass项目中的每个单独的方法,这些方法将运行一次.
您也可以使用AssemblyInitialize和AssemblyCleanup属性.在任何给定的程序集中只能有这些方法中的一个,并且它们将分别在任何类中的任何测试方法之前和之后运行第一个和最后一个.
更新:AssemblyInitialize/Cleanup需要在具有该TestClass属性的类中,但无论哪一个都无关紧要.每个属性的单个方法将在程序集运行中的任何测试之前或之后运行.但它不能是一种测试方法; 它必须是一个静态方法,不会算作"测试".
| 归档时间: |
|
| 查看次数: |
9037 次 |
| 最近记录: |