创建了一个记录的编码 UI 测试 - 它运行良好,但今天无法运行。
错误:“无法直接启动输出类型为类库的项目。为了调试此项目,请向此解决方案中添加一个引用库项目的可执行项目。将可执行项目设置为启动项目。”
谷歌搜索并确保将此测试设置为启动项目。但是,当我转到项目的属性时,应用程序选项卡下的“启动对象”设置为“(未设置)”。
有人可以帮忙吗?谢谢!
我们的应用程序有一个画布,我们可以在其中添加绘图视觉效果(如线条、多边形等)
// sample code
var canvas = new Canvas(); // create canvas
var visuals = new VisualCollection(canvas); // link the canvas to the visual collection
visuals.Add(new DrawingVisual()); // add the visuals to the canvas
visuals.Add(new DrawingVisual());
Run Code Online (Sandbox Code Playgroud)
我们的目标是通过自动化将这些视觉效果添加到画布中,并验证它们是否已正确添加。我们使用基于 Microsoft 的 UIAutomation 的框架。
当使用“Inspect”之类的工具检查视觉结构时,我无法找到画布。做了一些研究,发现您需要重写OnCreateAutomationPeer的方法UIElement,并返回适用的AutomationPeer对象,以便能够在自动化中看到它。
进行了更改,现在我可以看到画布,但是我仍然看不到画布下添加的任何视觉效果。
谁能帮我理解问题是什么?
尝试过的事情/替代方案:
DrawingVisuals 不是派生自UIElement,而且我无法将UIElements 添加到Canvas.VisualCollection。我在 UI 测试中尝试使用 MockK 时遇到错误,该错误在 Unittest 案例中完美运行
MockK could not self-attach a jvmti agent to the current VM
Run Code Online (Sandbox Code Playgroud)
完整的错误报告
Caused by: io.mockk.proxy.MockKAgentException: MockK could not self-attach a jvmti agent to the current VM. This feature is required for inline mocking.
This error occured due to an I/O error during the creation of this agent: java.io.IOException: Unable to dlopen libmockkjvmtiagent.so: dlopen failed: library "libmockkjvmtiagent.so" not found
Potentially, the current VM does not support the jvmti API correctly
at io.mockk.proxy.android.AndroidMockKAgentFactory.init(AndroidMockKAgentFactory.kt:67)
at io.mockk.impl.JvmMockKGateway.<init>(JvmMockKGateway.kt:46) …Run Code Online (Sandbox Code Playgroud) 我目前正在自动化为MS Office插件.我们正在VS 2010中创建编码UI测试.作为一个选项,我可以使用"编码的UI测试构建器"工具,但它不适用于我的情况.所以我为每个UI控件/地图创建了自己的UI Map类和扩展方法,我添加了不同的动作功能,例如按下按钮或断言一些UI值.测试用例的场景在测试类中.
我是这方面的新手,也是我作为自动化测试员工作的新手.也许您可以分享您的经验或建议测试自动化的一些良好实践和实践(从编程/设计的角度来看)
我在Silverlight项目中声明了一个TextBox,其内容为"123456",然后在Coded UI测试中使用以下代码.首先,它搜索并单击TextBox以设置焦点,然后尝试删除字符.
currencyPage.ClickEditByAutomationId("textBox");
Keyboard.SendKeys("{END}");
Keyboard.SendKeys("{BACKSPACE}");
Keyboard.SendKeys("{BACKSPACE}");
Keyboard.SendKeys("{BACKSPACE}");
Keyboard.SendKeys("{BACKSPACE}");
Keyboard.SendKeys("{BACKSPACE}");
Run Code Online (Sandbox Code Playgroud)
这是我的TextBox中生成的文本:123456BBBBB
我究竟做错了什么?文本框的XAML:
我的经理让我为Silverlight应用程序做一些自动UI测试.问题是这个应用程序使用了一些自定义控件,因此我无法立即以编程方式访问它们.
访问它们的唯一方法是使用AutomationPeer,但我的经理不喜欢这个想法,因为它违反了测试原则来改变代码以支持UI自动化; 代码应按原样进行测试.
有没有一种方法或工具可以让我在不使用AutomationPeer的情况下创建自动化的Silverlight UI测试?
我想知道为什么Coded UI测试如此重要.看起来我只是记录我的行为,所以显然一切都会过去.它似乎只是我记录我确实搞乱了GUI.我的所有断言都显得非常明显.当然,他们将是真实的.有人可以向我解释为什么这些值得花时间吗?我敢肯定,他们是的,但我不明白为什么他们是如此的重要....我的意思是,我可以测试我的手基本程序在五分钟内,但它要带我一个钟头做合法的编码UI测试.
在Visual Studio 2010中使用"编码的UI测试"时,只有在AUT尚未运行时才有一种简单的方法来启动被测应用程序(AUT)吗?
我知道我可以从头开始实现这样一块的启动代码,但我不知道在Visual Studio测试框架是否提供一些现成的.
automated-tests unit-testing mstest visual-studio-2010 coded-ui-tests
我目前正在寻找用于Selenium的替代方案的UI测试,最近我从VS2012切换到VS2013,我注意到的第一件事是,缺少Coded UI Test项目模板.
任何人都知道为什么缺少这个和/或我需要另外安装一些东西,或者是否有一些解决方法可以让它再次可用?
如何在所有屏幕类型中单击按钮的特定部分?我有一个带下拉值的按钮,我需要点击向下箭头图像,我尝试下面的代码:
Mouse.click(someBtn,new Point(250,45));
Run Code Online (Sandbox Code Playgroud)
这可以在我的屏幕上工作,这可以在桌面上的其他位置点击,因为轴会发生变化.建议一些解决方法或解决方案.
coded-ui-tests ×10
c# ×3
silverlight ×2
.net ×1
gui-testing ×1
kotlin ×1
mocking ×1
mockk ×1
mstest ×1
sendkeys ×1
unit-testing ×1
wpf ×1