c# - WPF UI Automation with .NET 4.5 with Prism 和 MVVM with Click Once App 便于非开发人员使用

标签 c# .net wpf mvvm ui-automation

关闭。这个问题需要更多 focused .它目前不接受答案。












想改进这个问题?更新问题,使其仅关注一个问题 editing this post .

7年前关闭。




Improve this question




我已经搜索并尝试了一些东西,即这个线程:

How to test a WPF user interface?

我尝试开始使用 Systems.Windows.Automation 和 TestAutomationFX(第三方工具)。我的观点是,虽然对简单的事情有好处,但 TestAutomation 会在多个 UI 级别下降(加载程序集的用户控件中的用户控件)时发生爆炸,我可能不得不手动调整他们背后的代码以获得我想要的东西。 System.Windows.Automation 似乎很旧,我必须手动完成所有事情,这可能需要比我想要投入的更多时间,因为我不是全职创建自动化。我还从适用于 Windows 7 的 Windows SDK 下载了 Inspect.exe,它非常适合在我的 UI 中反射(reflect)对象。两个测试人员都可以很好地处理后面的简单代码,但是当它下降几层时,它似乎有点复杂。我还打算在 GitHub 上尝试从原始项目 White 迁移而来的“TestSTack/White”。

我很好奇最近是否有人在非开发人员可以在 QA 职位上使用的 UI 自动化方面有经验。我正在考虑获得 VS 2013 Test Pro 但这似乎有点矫枉过正,而且从我所看到的情况来看,这比 VS 2013 Pro 更贵。基本上,这不是负载测试或冗长的复杂动态实体结果更改,只是功能测试,希望有十次左右的不同变量运行。这只是一个更令人困惑的布局,因为我们还将 Prism 方法 Microsoft.Practices.Prism 与 MVVM 相结合。

我不介意在 VS 2013 和 .NET 4.5 中开发一些东西,但我希望得到一些我没有为它开发一整套项目的东西,而是为了节省时间。我是单元测试项目的极端菜鸟,但最终目标确实是:

  • 为非开发人员提供一个 exe 或一些环境,以按照一些 Prism 和 MVVM 架构自动运行用 WPF 编写的 Click Once UI。
  • 希望有某种类型的 CSV、配置或其他方法,他可以更改变量以运行某些测试。
  • 是否能够以配置或可更改的方式输入单击一次应用程序的 exe(单击一次很有趣,在我打开任务管理器然后单击一次应用程序的“打开位置”的经验中发现它,这与框不同盒子)。

  • 这可能有很多问题,或者对于那些每天进行单元测试的人来说可能很简单,我不知道。我准备尝试使用 3rd 方产品、非 .NET 产品来运行 .NET,并在 VS 中使用 C# 编码来制作一个项目来运行我的 UI(只要它可以在没有 VS 的盒子上运行)。

    最佳答案

    理想情况下,您根本不需要进行很多 UI 测试——应用程序的大部分逻辑应该通过单元测试进行测试。使用 MVVM,您可以轻松地测试您的 View 模型,以确保按钮在应有的情况下被禁用/启用,等等。

    通过你的 UI 测试你的核心业务逻辑是灾难的根源。只是不要这样做。 UI 测试非常脆弱,如果您的 UI 发生任何显着变化,往往需要重新记录或更新。如果您的测试因与您尝试更改的核心逻辑无关的原因而失败,那么您就不太可能相信测试验证了它们应该验证的内容。如果您不信任测试,您将开始忽略失败。 “哦,那个测试有时会失败,没什么大不了的。”如果您不能相信您的测试在 100% 的时间内是准确的,那么为什么还要麻烦进行测试呢?

    所以你想通过 UI 测试工具测试的是 UI 的最顶层,只是为了确保你的 View 模型正确地绑定(bind)到你的 View 。这归结为,实际上,只是少数测试。为此,您可以轻松使用 Coded UI .棘手的部分是确保您的所有控件都是自动化友好的,这确实涉及为控件提供正确的名称并确保您将正确的自动化属性附加到控件。

    Coded UI 在 VS Premium 及更高版本中可用,您不需要使用 Microsoft 测试管理器来管理和运行测试,尽管它肯定更容易。

    不过,听起来您真正追求的是 MTM。您希望您的手动测试人员能够通过与您的应用程序交互来记录测试,然后再播放它们。这正是 MTM 的设计目的,也是它擅长的。

    关于c# - WPF UI Automation with .NET 4.5 with Prism 和 MVVM with Click Once App 便于非开发人员使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23477225/

    相关文章:

    C# - 带矩阵的文本文件 - 划分所有条目

    c# - ASP.NET C# 在gridview记录中显示按钮

    c# - 你能用一个很好的 C# 例子来解释 Liskov 替换原则吗?

    WPF相当于margin-top?

    wpf - 如何在 WPF 中编写条件语句?

    c# - C# 中的 java.lang.Void?

    c# - 如何在转发器中将文本框值获取到数据库?

    C# 等效于 Delphi 的 "class"函数/过程

    .net - RIA 服务的主要特点/优势是什么?

    wpf - WPF/Caliburn Micro 中的鼠标处理程序