有没有办法将Visual Studio 2010 Coded UI Test与Specflow集成?我不确定这两个是否能以某种方式挂钩.
我有这个想法,通过使用一些Coded UI API(我还不知道是什么)创建一个数据驱动的编码UI测试,并将其连接到Specflow.我必须重新审视去年的Specflow视频,看看所有人是如何融合在一起的,我会很感激一些投入,想法.
这与创建Specflow的单元测试提供程序有关,如下所示(自VS 2010中的Coded UI工作):MsTest.2010 .Net 4.0的MsTest版本.支持测试类别.
unitTestProvider(generatorProvider和generatorProvider)会是那个连接吗?
或者只是这两个不会混合,是竞争或不同的方式进行集成或验收测试.Coded UI测试实际上接近于通过selenium运行Specflow进行UI自动化测试,还有为您生成代码的额外好处.
我只想获得编码UI测试的好处(在设计和运行时最大化其功能)和Specflow(再次设计和运行时)
(有关Microsoft网站上的更多信息)创建数据驱动的编码UI测试 http://msdn.microsoft.com/en-us/library/ee624082(VS.100).aspx
使用Visual Studio Premium或Visual Studio Ultimate,您可以创建编码的UI测试,以测试应用程序的用户界面(UI)是否正常运行.编码的UI测试对应用程序的用户界面控件执行操作,并验证指定的控件是否显示正确的值.有关如何创建编码的UI测试的更多信息,请参见如何:创建编码的UI测试.
使用指定数据创建编码的UI测试后,您可能希望使用不同的数据集多次运行编码的UI测试以测试不同的条件.为此,您可以从数据源添加参数值以创建数据驱动的编码UI测试.数据源中的每一行都是编码的UI测试的迭代.测试的总体结果将基于所有迭代的结果.例如,如果一次测试迭代失败,则整体测试结果失败.
有关数据驱动测试的更多常规信息,请参见如何:创建数据驱动单元测试.(http://msdn.microsoft.com/en-us/library/ms182527.aspx)
谢谢,Rad
我在Winform应用程序中有一个网格(FlexGrid,来自ComponentOne),我试图在该网格中找到一个单元格,给定单元格的列索引及其值.
我已经编写了下面的扩展方法来遍历网格并找到该单元格.
我正在一个有6列64行的网格上测试该方法.我的代码花了10分钟才找到正确的单元格(位于最后一行)
有什么方法可以加快我的算法速度吗?
注意:我也尝试将PlayBack.PlayBackSetting.SmartMatchOption设置为TopLevelWindow,但它似乎没有改变任何东西......
谢谢!
public static WinCell FindCellByColumnAndValue(this WinTable table, int colIndex, string strCellValue)
{
int count = table.GetChildren().Count;
for (int rowIndex = 0; rowIndex < count; rowIndex++)
{
WinRow row = new WinRow(table);
WinCell cell = new WinCell(row);
row.SearchProperties.Add(WinRow.PropertyNames.RowIndex, rowIndex.ToString());
cell.SearchProperties.Add(WinCell.PropertyNames.ColumnIndex, colIndex.ToString());
cell.SearchProperties.Add(WinCell.PropertyNames.Value, strCellValue);
if (cell.Exists)
return cell;
}
return new WinCell();
}
Run Code Online (Sandbox Code Playgroud)
编辑
我将我的方法修改为如下(例如我不再使用winrow),这似乎快了大约3倍.虽然它仍然需要7秒才能找到一个包含3行和6列的表中的单元格,所以它仍然很慢......
我会将这个答案标记为后来被接受,以便留出时间让其他人提出更好的建议
public static WinCell FindCellByColumnAndValue(this WinTable table, int colIndex, string strCellValue, bool searchHeader = false)
{
Playback.PlaybackSettings.SmartMatchOptions = Microsoft.VisualStudio.TestTools.UITest.Extension.SmartMatchOptions.None;
int count = …Run Code Online (Sandbox Code Playgroud) 我的团队正在积极地进入一个新项目,我们正抓住机会让自己了解最新的Scrum方法,新技术等.部分原因是尝试使用Microsoft Test Manager和VS2010 Coded UI测试自动化我们的QA流程.
但是,我们在使用我们当前选择的WPF控件库DevExpress XPF套件时无法使用自动测试回放.我们多年来一直在使用DevExpress来实现他们的WinForms和ASP.NET控件,但这是我们第一次使用他们的WPF控件和自动UI测试,这两者似乎并不能很好地协同工作.
特别是,尝试回放与网格控件交互的记录测试永远不会正常工作,即使在简单的控件上,回放似乎也会混淆应该与哪个编辑器进行交互.在动作录音中,我们的测试线是从MTM产生的,我看到了很多这样的:
Type '5236' in 'PART_Editor' text box
Type '253' in 'PART_Editor' text box
Run Code Online (Sandbox Code Playgroud)
更糟糕的是,在网格内部:
Click 'FooterPanel' pane
Last action on list item was not recorded because the control does not have any good identification property.
Click 'FooterPanel' pane
Click 'Item: CashEntry, Column ...' custom control
Move 'Item: CashEntry, Column ...' custom control from (141, 10) to 'Item: CashEntry, Column ...' custom control (5, 11)
Type '{NumPad8}{Down}{NumPad5}{NumPad0}{Up}{Down}{Down}' in 'CashEntry' window
Run Code Online (Sandbox Code Playgroud)
现在,我在DevX的论坛上看到很多关于他们的WinForms控件不能很好地支持MSAA编码UI测试工作的喋喋不休,但我认为WPF使用了一种不同的自动UI测试机制,应该可以更好地工作.所以,我的问题是:
wpf automated-tests devexpress coded-ui-tests microsoft-test-manager
我在使用没有远程会话的Team Foundation Server(TFS)持续集成(CI)启动编码UI测试时遇到了问题.我已经遵循了http://msdn.microsoft.com/en-us/library/dd293551.aspx中提到的所有建议,但这仍然需要一个活动的远程会话.建议是以交互模式设置测试代理并构建服务.
是否有远程运行Coded UI Test的变通方法?
PS我们的测试机器上安装了Windows 7.
任何帮助都会:)
tfs continuous-integration mstest visual-studio-2010 coded-ui-tests
我发现了一些关于如何使用mstest实用程序执行代码UI测试的博客文章,但我需要从我的C#应用程序执行它们.我尝试了最简单的事情:我创建了一个控制台应用程序,添加了对它的引用
我尝试从我的应用程序调用UI测试方法.我收到以下错误:
The following is not a valid technology name: MSAA. To search for a control, you must specify a valid technology name.
Run Code Online (Sandbox Code Playgroud)
我尝试引用与UI测试相关的其他程序集,但错误保持不变.也许我应该添加到App.config以便能够运行测试?
我一直在尝试将泛型引入我们的自动化代码,所以我试图将WpfControl转换为泛型类型T,其中T被约束为WpfControl类型.
return control as T;
Run Code Online (Sandbox Code Playgroud)
T将始终是WpfControl的子代,但是当我将类型为WpfControl的控件转换为泛型类型时,它返回null.我还尝试将控制转换为确切的子类型,例如:
var childControl = control as WpfTabList;
Run Code Online (Sandbox Code Playgroud)
这仍然会回来null.有人遇到过类似的问题吗?
请参阅此WpfControl类
环境:VS 2010. TFS.
对于我的一个项目,每当我编译时,VS都会在我的项目中添加一个bin文件夹.我可以删除它,但是当我编译时,它会被重新添加.这是我以前没有见过的行为,在解决方案的其他项目中不存在.请参阅下面的图片了解更多详情.

我有一个CodedUiTest,它有几种测试方法.每次我通过MSTest从命令行执行测试时,我希望能够将不同的路径传递给测试.我怎样才能做到这一点?
这就是我现在执行测试的方式:
{
System.Diagnostics.Process codedUIProcess = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo codedUIStartInfo = new System.Diagnostics.ProcessStartInfo();
codedUIStartInfo.FileName = @"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\MSTest.exe";
codedUIStartInfo.Arguments = @"/testcontainer:C:\DailyBuildAutoTest.dll /test:MyUITestAssembly\MyCodedUITest";
codedUIStartInfo.CreateNoWindow = true;
codedUIProcess.StartInfo = codedUIStartInfo;
codedUIProcess.Start();
}
Run Code Online (Sandbox Code Playgroud)
有没有办法将字符串之类的参数传递给"MyCodedUITest"?
在编码的ui中,有一种等待控件存在的方法UITestControl.WaitForControlExist(waitTime);.有没有办法等待控件不存在?我能想到的最好的方法是创建一个像这样的扩展方法:
public static bool WaitForControlClickable(this UITestControl control, int waitTime = 10000)
{
Point p;
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
while (stopwatch.ElapsedMilliseconds < waitTime)
{
if (control.TryGetClickablePoint(out p))
{
return true;
}
Thread.Sleep(500);
}
return control.TryGetClickablePoint(out p);
}
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法呢?此外,我正在寻找一种相反的方法.
我有一个带有两个DatePicker控件和一些文本输入和按钮的活动.我想通过espresso测试一些场景:
DatePicker.DatePicker.DatePicker.第三步我想做点什么onView(withId(R.id.end_date_picker)).check(matches(withText("25-01-2017")));.我可以使用什么代替withText检查DatePicker日历/日期值?谢谢你的帮助.
coded-ui-tests ×10
c# ×6
mstest ×3
android ×1
automation ×1
datepicker ×1
devexpress ×1
integrate ×1
performance ×1
specflow ×1
tfs ×1
winforms ×1
wpf ×1