通过https://msdn.microsoft.com/en-us/library/jj635153.aspx阅读 我创建了一个.RunSettings文件,其中包含一些类似于示例的参数:
<TestRunParameters>
<Parameter name="webAppUrl" value="http://localhost" />
<Parameter name="webAppUserName" value="Admin" />
<Parameter name="webAppPassword" value="Password" />
</TestRunParameters>
Run Code Online (Sandbox Code Playgroud)
我计划.RunSettings为每个环境提供一个文件,其中包含适当的URL和凭据,用于在指定的RunSettings文件环境中运行CodedUI测试.
我可以看到从命令行引用我可以运行的设置文件:
vstest.console myTestDll.dll /Settings:Local.RunSettings /Logger:trx
vstest.console myTestDll.dll /Settings:QA.RunSettings /Logger:trx
Run Code Online (Sandbox Code Playgroud)
等等...
但我没有看到任何方式来调用如何TestRunParameters在codedUI测试中实际使用from.
我想要做的是设置测试初始化程序,使用它TestRunParameters来确定登录的位置以及要使用的凭据.像这样的东西:
[TestInitialize()]
public void MyTestInitialize()
{
// I'm unsure how to grab the RunSettings.TestRunParameters below
string entryUrl = ""; // TestRunParameters.webAppUrl
string userName = ""; // TestRunParameters.webAppUserName
string password = ""; // TestRunParameters.webAppPassword
LoginToPage(entryUrl, userName, password);
}
public void LoginToPage(string entryUrl, string …Run Code Online (Sandbox Code Playgroud) c# asp.net coded-ui-tests vs-unit-testing-framework runsettings
我在某些测试中有属性,理想情况下我不想在每个构建上运行.我的大多数测试都是正常的单元测试,我确实希望它们在每个构建上运行.
那么:我如何按类别或项目类型排除测试?
例如,我想排除CodedUItests:
[CodedUITest]
public class SearchViewTests
Run Code Online (Sandbox Code Playgroud)
...或排除给定的测试TestCategory:
[TestMethod]
[TestCategory("Database Integration")]
public void ContactRepositoryGetByIdWithIdExpectCorrectContact()
Run Code Online (Sandbox Code Playgroud)
我特别希望排除编码的UI测试,因为它们会破坏我继续工作的能力,而所有其他测试都会在后台愉快地运行而不会打扰我.
最初这个问题是关于Visual Studio 2012的,所以我更喜欢那个版本以及更高版本的解决方案.
tdd unit-testing visual-studio coded-ui-tests visual-studio-2012
我遇到以下问题:
尝试添加对Silverlight 5应用程序([MSDN] [1])的编码UI测试的支持.第一步是在Silverlight 5项目中引用程序集Microsoft.VisualStudio.TestTools.UITest.Extension.SilverlightUIAutomationHelper.dll.不幸的是,在添加引用之后,项目停止编译时出现了许多类似的错误:
>
Error 25 Cannot resolve reference assemblies. Please check the reference assemblies. Could not load file or assembly 'System.Core, Version=5.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) ....\ErrorReportDialog.xaml
Looks like System.Core 5.0.5.0 fails to load, okay, debugging assemblies loading with Fuslogw produces two interesting logs:
First log:
> Assembly Binder Log Entry (04.03.2013 @ 14:07:49)
The operation was successful.
Bind …Run Code Online (Sandbox Code Playgroud) 当我从一个小型控制台工具通过vstest.console.exe计划任务运行CodedUI Test时,我有时会在不同的PC上看到此错误消息:
错误:无法加载文件或程序集'file:/// C:\ foobar.dll'或其依赖项之一.不支持操作.(HRESULT异常:0x80131515)
为什么/这不受支持?
我已经在Visual Studio 2013中为我的ASP.NET MVC解决方案添加了编码UI测试.我很惊讶地看到测试的运行速度有多慢; 在测试机器唤醒并开始填写表单字段之前,每个页面都会在那里停留一分钟或更长时间.
经过一些实验(包括关闭SmartMatch),我发现只是打电话
Playback.PlaybackSettings.WaitForReadyLevel = WaitForReadyLevel.Disabled;
Run Code Online (Sandbox Code Playgroud)
解决了这个问题.但是,正如预期的那样,测试经常失败,因为UI线程尚未准备好让测试机器与表单上的控件进行交互.
调用
Playback.PlaybackSettings.WaitForReadyLevel = WaitForReadyLevel.UIThreadOnly;
Run Code Online (Sandbox Code Playgroud)
如果缓慢,可以使测试可靠地运行.
有什么想法或建议吗?是否有人希望有人能够深入了解WaitForReady机器的魔力?还有其他任何与WaitForReady相关的设置WaitForReadyLevel吗?
每次在我的TFS服务器上运行构建时,我都在使用Visuial Studio的编码UI测试在WPF应用程序上运行自动UI测试.我遇到的问题是根据它刚刚构建的路径动态启动可执行文件,包括配置(x86,x64).
有没有办法在引用的项目中获取可执行文件的路径,以便我可以从我的测试项目中动态启动应用程序?
我刚安装了Visual Studio 2017 Enterprise(15.0.26228.4 D15RTWSVC)和.NET Framework 4.6.01055版.我无法将新的编码UI测试项目添加到新解决方案中,因为我无法在"新建项目"对话框中找到该项目类型.我认为这是因为我在安装Visual Studio时没有安装一些可选模块.
我需要安装哪个可选模块才能将新的Coded UI测试项目添加到VS2017 Enterprise的解决方案中?
我正在尝试自动化编码的UI测试.
我的测试控制器在远程测试服务器上启动测试,我通常通过远程桌面连接访问它.
是否可以运行Coded UI测试而无需通过远程桌面连接?
目前,测试仅在我通过远程桌面连接时运行,并且窗口必须打开.当我关闭远程桌面会话时,测试不会运行.
如果在没有远程桌面的情况下无法运行编码的UI测试,我如何通过远程桌面自动连接?
谢谢
我正在VS2010中编写一些encodeUI测试来测试Web应用程序.我希望能够在解决方案中为浏览器中的整个测试打开一次浏览器,然后在测试完成后再次关闭它.
我已经尝试AssemblyInitialize了一个方法的属性,我BrowserWindow.Launch在那里,但是当我运行它时它给了我以下异常:
程序集初始化方法OrdersGridTesting.SuiteSetup.Login引发异常.Microsoft.VisualStudio.TestTools.UITest.Extension.TechnologyNotSupportedException:Microsoft.VisualStudio.TestTools.UITest.Extension.TechnologyNotSupportedException:当前不支持浏览器..中止测试执行.
当我把它放入a时TestMethod,同样的代码工作正常,这让我相信这是不可能的.有人可以提出另一种方法吗?如果可能的话,我想要一个不涉及向项目中的每个测试类添加相同代码的方法.
谢谢!
在webforms中创建了一个简单的计算器应用程序.用户在文本字段中输入一个数字,MainContent_numberTb然后单击结果按钮.
在我的解决方案中添加了一个新的"编码UI测试项目".通过添加'5'测试了UI,这一切都很好.现在想将实际结果与预期结果进行比较.
BrowserWindow Browser = BrowserWindow.Launch("http://url");
UITestControl UiInputField = new UITestControl(Browser);
UiInputField.TechnologyName = "Web";
UiInputField.SearchProperties.Add("ControlType", "Edit");
UiInputField.SearchProperties.Add("Id", "MainContent_numberTb");
//Populate input field
Keyboard.SendKeys(UiInputField, "5");
//Results Button
UITestControl ResultsBtn = new UITestControl(Browser);
ResultsBtn.TechnologyName = "Web";
ResultsBtn.SearchProperties.Add("ControlType", "Button");
ResultsBtn.SearchProperties.Add("Id", "MainContent_calBtn");
Mouse.Click(ResultsBtn);
Run Code Online (Sandbox Code Playgroud)
以上所有代码都可以正常工作,尝试访问标签时会出现问题
<asp:Label ID="AllNumLbl_Res" runat="server"></asp:Label>
Run Code Online (Sandbox Code Playgroud)
我在控件类型旁插入什么?它不是编辑,因为编辑是文本字段.那么,什么存储实际结果,所以我可以比较AllNumsTB?
string expectedAllNums = "1, 2, 3, 4, 5";
UITestControl AllNumsTB = new UITestControl(Browser);
AllNumsTB.TechnologyName = "Web";
AllNumsTB.SearchProperties.Add("ControlType", "?????");
AllNumsTB.SearchProperties.Add("Id", "MainContent_AllNumLbl_Res");
if(expectedAllNums != AllNumsTB.??????)
{
Assert.Fail("Wrong Answer");
}
Run Code Online (Sandbox Code Playgroud)
UPDATE
OK所以使用调试器控制台我能够获得标签的值((Microsoft.VisualStudio.TestTools.UITesting.HtmlControls.HtmlSpan)new System.Collections.ArrayList.ArrayListDebugView(((System.Collections.CollectionBase)(AllNumsTB.FindMatchingControls()).List).InnerList).Items[0]).DisplayText
但是当我在代码中使用它ArrayListDebugView …
coded-ui-tests ×10
c# ×5
.net ×2
asp.net ×2
unit-testing ×2
.net-4.0 ×1
mstest ×1
runsettings ×1
silverlight ×1
tdd ×1