【问题标题】:CodedUI Declare [TestMethod] At Run TimeCodedUI 在运行时声明 [TestMethod]
【发布时间】:2013-03-11 05:13:48
【问题描述】:

我有一个相当大的 Coded UI 测试,并在其自己的 .cs 类文件中设置了每个任务。测试的主要目的是检查对象是否已加载到浏览器的各个页面上。测试设置为循环通过一个 XML 配置文件,并在用户认为合适的时候调用 XML 中列出的每个方法。

因为我不希望每个测试方法每次都运行,所以我没有在每个类/方法的顶部声明 [TestMethod] 属性。不幸的是,这意味着调用的每个方法都不会单独显示在测试结果视图中,这是一个很大的缺点。

有没有一种方法可以在每次调用方法时应用 [TestMethod] 属性,但仅限于我想要的方法?

【问题讨论】:

  • 如果问题是关于记录哪个方法被调用,那么附加一些记录器呢?在您的场景中 - MSTest 通过反射工作,因此您需要以某种方式将 TestMethod 属性添加到方法并将修改后的程序集提供给 MSTest。
  • 谢谢,但这与记录无关。我正在使用 streamwriter 对象编写一个 .txt 文件,其中列出了每个被调用的方法。我在这里关注的主要主题是测试结果视图。因为我没有使用 [TestMethod],所以一旦测试完成,我就无法查看在测试视图中调用的每个方法。
  • 测试中Console的输出显示在测试结果中。
  • 您将不得不在 VS 2010 中使用有序测试。但是,这不是推荐的做法。

标签: c# visual-studio-2010 automation coded-ui-tests smoke-testing


【解决方案1】:

测试运行程序使用测试程序集上的反射来查找具有 [TestMethod] 属性的方法,然后一一调用这些方法来执行测试。要执行您想要的操作,您需要更改测试运行程序,即便如此,您也必须做一些事情来更改测试程序集的 IL 以动态添加属性、重新加载程序集,并且可能还有很多其他操作我在掩饰的事情。如果你能做到这一点,你基本上是在编写自己的测试框架。

相反,您是否有不想使用test lists 的原因?他们会按照您的要求行事。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-26
    • 1970-01-01
    • 2015-06-22
    • 2015-11-25
    • 1970-01-01
    • 2011-04-22
    • 1970-01-01
    相关资源
    最近更新 更多