在Visual Studio 2010 beta中,使用CodedUI测试模板为我的Web应用程序记录了一些测试场景.它们在Visual Studio中成功运行,没有任何问题.我一直在寻找创建部署包的说明.
我正在使用VS2010 Premium,编码的UI测试.
你知道如何在运行后重新执行失败的测试用例吗?如果在重新执行后传递了测试,那么它应该在结果报告中传递.
我已经读过编辑UIMap.Designer.cs文件是不好的,但是,我不明白为什么.
每个MSDN:"不要直接修改UIMap.designer.cs文件.如果这样做,将覆盖对文件的更改." http://msdn.microsoft.com/en-us/library/dd380782.aspx
有人知道被覆盖的是什么吗?这是否意味着如果在Designer文件之后编辑UIMap.uitest文件,设计器文件会被反转?请帮忙.
我正在尝试简化我的UITest代码.这时我有数百行代码,用于检查最多八个表行,每行有三个文本字段.这不仅会减少我拥有的代码行数,还会减少复制/粘贴/编辑过程引起的错误.
我在checkRow函数的三行上得到"无法调用非函数类型'XCUIElement'的值"错误.
如果我用一个整数替换三行中的'thisRow'变量,代码将被编译.
这是之前和之后.
func testAkcCh() {
navConfig.tap()
pickCD.adjust(toPickerWheelValue: "4")
pickCB.adjust(toPickerWheelValue: "5")
pickSD.adjust(toPickerWheelValue: "3")
pickSB.adjust(toPickerWheelValue: "2")
XCTAssert(app.tables.cells.count == 8)
XCTAssert(app.tables.cells.element(boundBy: 0).staticTexts["Best of Breed"].exists)
XCTAssert(app.tables.cells.element(boundBy: 0).staticTexts[p5].exists)
XCTAssert(app.tables.cells.element(boundBy: 0).staticTexts[d13].exists)
XCTAssert(app.tables.cells.element(boundBy: 1).staticTexts["Best of Opposite Sex"].exists)
XCTAssert(app.tables.cells.element(boundBy: 1).staticTexts[p5].exists)
XCTAssert(app.tables.cells.element(boundBy: 1).staticTexts[d06].exists)
}
Run Code Online (Sandbox Code Playgroud)
成
func checkRow(thisRow: Int, thisAward: String, thisPoints: String, thisDefeated: String) {
XCTAssert(app.tables.cells.element(boundBy: thisRow).staticTexts[thisAward].exists)
XCTAssert(app.tables.cells.element(boundBy: thisRow).staticTexts[thisPoints].exists)
XCTAssert(app.tables.cells.element(boundBy: thisRow).staticTexts[thisDefeated].exists)
}
func testAkcCh() {
navConfig.tap()
pickCD.adjust(toPickerWheelValue: "4")
pickCB.adjust(toPickerWheelValue: "5")
pickSD.adjust(toPickerWheelValue: "3")
pickSB.adjust(toPickerWheelValue: "2")
XCTAssert(app.tables.cells.count == 8)
checkRow(0, "Best of Breed", p5, d13)
checkRow(1, "Best of Opposite …Run Code Online (Sandbox Code Playgroud) 我目前正在使用Coded UI编写自动化测试脚本.我在我的脚本中的各个点使用了Trace.Writeline来帮助找出测试可能失败的地方.一个这样的片段如下:
Trace.WriteLine(DateTime.Now.ToString("Enter press"));
Keyboard.SendKeys("{TAB}");
Trace.WriteLine(DateTime.Now.ToString("Tab press x 20"));
Keyboard.SendKeys("{TAB 4}");
Keyboard.SendKeys("{TAB 4}");
Keyboard.SendKeys("{TAB 4}");
Keyboard.SendKeys("{TAB 4}");
Keyboard.SendKeys("{TAB 4}");
Trace.WriteLine(DateTime.Now.ToString("Asserting Period cell state."));
Run Code Online (Sandbox Code Playgroud)
但是,当测试运行时,我得到以下输出:
2018/01/26 - 15:29:45 | Step 1
2018/01/26 - 15:30:17 | Step 2
2018/01/26 - 15:30:54 | Step 3
2018/01/26 - 15:31:08 | Step 4
2018/01/26 - 15:36:57 | Step 5
2018/01/26 - 15:42:46 | Step 6
2018/01/26 - 15:42:55 | Step 7
2018/01/26 - 15:43:04 | Step 10
2018/01/26 - 15:44:46 | Step 11
EnPer pre46 …Run Code Online (Sandbox Code Playgroud) 我有一个类(codedUI),包含静态属性,用于从运行到运行保存变量:
[CodedUITest]
public class SomeClass
{
public static string MyStaticProp { get; set; }
[TestMethod]
public void TestMethod1()
{
SomeClass.MyStaticProp = "AHA";
}
[TestMethod]
public void TestMethod2()
{
string x = SomeClass.MyStaticProp;//when TestMethod1 and TestMethod2 are called from an "ordered test", MyStaticProp is reset everytime. The strange thing: it used to work....
}
}
Run Code Online (Sandbox Code Playgroud)
我认为MyStaticProp在运行中保持不变(首次运行,初始值= null,第二次运行初始值"AHA").但显然MyStaticProp从运行到运行总是重置为null.知道为什么会这样吗?
编辑:谢谢大家的帮助!我想我会创建一个"DataClass",它将保存到temp-folder中/从temp-folder中加载.像这样我可以肯定会发生什么.
我仍然没有得到的是,为什么它在过去有效,但现在它已不复存在了.
我开始使用Coded UI Tests.到目前为止一切顺利,但我对文件UIMap.uitest有一个担忧.由于我必须创建许多测试场景,因此意味着许多cs文件.我拥有的文件越多,UIMap.uitest就越大,因为它一直在重新生成代码.我的问题是,是否可以分别为每个cs文件创建/创建每个UIMap.uitest?我正在使用VS2010.
谢谢
我有一个 CodedUI 测试套件,作为 MSTest 单元测试运行。我在 AssemblyCleanup 中有一个方法,它将通过电子邮件发送存储在外部数据库中的测试运行结果。如何以编程方式确定上次运行会话期间执行了多少个单元测试?如果我们执行的测试少于 10 次,我不想发送电子邮件。这样,我们仅在运行整个 CodedUI 套件时收到电子邮件,而不是在调试测试时收到电子邮件。我们目前有一个必须手动设置的 SendEmail 标志,但我希望以编程方式确定它。
c# unit-testing mstest coded-ui-tests vs-unit-testing-framework
我有一个带登录按钮的网页,只需点击按钮即可访问该网站.写这个很容易做到:
//单击"登录"按钮
UITestControl Login = new UITestControl(Browser);
Login.TechnologyName = "Web";
Login.SearchProperties.Add("ControlType", "Button");
Login.SearchProperties.Add("Type", "Submit");
Login.SearchProperties.Add("DisplayText", "Log In");
Mouse.Click(Login);
Run Code Online (Sandbox Code Playgroud)
但是,在您第一次登录后,您将保持登录状态一小时(如果闲置超过一小时则自动注销).如果您在一小时内多次访问该站点,则没有登录按钮,因为您仍然登录,因此每次运行我的测试时,它都会立即报错,因为它无法找到控件.
我希望这是有道理的,这里是一个概要:
首次访问网站 - 出现登录屏幕,单击登录按钮,获取进入网站的后续时间 - 不显示登录屏幕,无需登录
所以基本上我想说,"如果有一个登录按钮,点击它然后做下一件事,如果没有登录按钮,那么做下一件事"
我正在使用UISwitch,并且目前正在编写 UI 测试代码。问题是我不知道如何在这些测试中获取 Switch 值/状态。在程序代码中,我可以使用mySwitch.isOnreturn trueor false,但在 UI 测试中我不知道如何获取这个值。
如果能在英语纠正方面得到一点帮助,我们将不胜感激。
谢谢!
coded-ui-tests ×10
c# ×3
automation ×2
testing ×2
.net ×1
deployment ×1
ios ×1
mstest ×1
properties ×1
qa ×1
static ×1
swift ×1
swift3 ×1
uiswitch ×1
uitest ×1
unit-testing ×1
xcode ×1