0条留言

苏黎世Xamarin用户组徽标

我在2016年9月15日星期四度过了愉快的时光 苏黎世的Xamarin用户组。尽管我对在Windows上运行的UI测试似乎有“次要”影响的最新更新有些挣扎,但我还是很高兴介绍并回答一些有趣的问题。

在我们影响中心的绝佳位置,我的演讲形象。

聚会之后,进行了典型的披萨,糖果,啤酒,水讨论,这些讨论总是产生关于主题的新见解。我要感谢所有参加这次演讲的人,并期待与您在苏黎世即将举行的Xamarin聚会中亲爱的读者见面。

披萨的图片-看着它让我饿了...做得好过去...

另外,我很高兴地宣布,我现在和其他人一起成为聚会的共同组织者 托马斯·夏里尔 雷托·森 。因此,如果您有任何要介绍的主题或看到的主题,请务必通过以下方式与我联系  推特 或者只是在下面写下评论。如果您只是想通过提供一些饮料来支持我们的努力,请立即与我或我的组织者之一联系 眨眼的微笑

谈话内容

你可以找到我的幻灯片 这里 和上的代码 的GitHub .

0条留言

我最近为一个应用程序编写了一个UI测试,该应用程序显示了包含冒号的CSS ID。 替换 的UI树如下所示:

谷歌搜索确实使我更接近可能 通过建议使用反斜杠来使冒号转义,最后输出如下:

因此,运气不好,在开始任何细节之前,这里是如何解决问题的方法:

的iOS

安卓

之所以必须对冒号进行多次转义,是因为该字符串将通过多个运行时传递。每个人都将重新解释和转义字符串。不同的计数是由于Xamarin UI测试必须如何处理平台。

参考

非常感谢Xamarin UI测试团队的TobiasRøikjer指出了如何解决此问题。

0条留言

博客标题图片,显示了github octocat和Visual Studio徽标

在这篇文章中,我假设您已经熟悉GitHub。 Visual Studio团队服务(VSTS)是一个云托管服务,专注于以DevOps为中心的团队。如果要查找私有存储库,则可以使用集成的Git存储库。但是,如果该项目已经托管在GitHub上,或者它是一个开源项目。 VSTS可以充当支持第三方托管存储库的构建服务器。集成GitHub的路径是最好的预定义路径之一,因此是那些服务之一。但这是对集成的强大支持。

VSTS不是专注于单个任务的工具。它是一种工具,旨在提供一个通用平台来支持具有DevOps思维的团队。默认情况下,VSTS为团队提供用于源代码管理,构建和测试的默认工具集。插件允许针对不同的任务绑定不同的工具,例如版本控制。这些插件或外部服务端点可轻松将GitHub集成为VCS。我假设您满足以下先决条件:

  • 拥有VSTS帐户
    • 您可以在此处创建免费帐户。
  • 有一个VSTS项目
  • 有一个GitHub帐户
  • (已将代码存储库推送到GitHub)

打开项目仪表板,然后打开设置菜单。在里面 控制面板 您的项目中打开选项卡 服务 :

VSTS项目控制面板中的选项卡,其中已选择服务。

然后添加一个新的服务端点并选择GitHub:

添加包括GitHub选项的新服务端点。

在下面的对话框中为连接命名,即GitHub。请注意,如果您已经使用一个帐户登录到GitHub,则将使用该帐户进行连接。如果要使用另一个帐户。执行这些步骤时,请尝试使用浏览器的私有模式。

用于配置外部GitHub服务的对话框,只需选择“授权”即可继续。

点击授权后,您的VSTS将连接到您的GitHub帐户。为项目配置构建配置时。现在可以选择GitHub作为存储库类型,即选择托管在GitHub上的存储库。

该屏幕快照显示了构建配置中的存储库选项卡,该选项允许选择GitHub作为存储库类型。

结论

在本文中,我们看到了如何将GitHub作为外部服务添加到VSTS项目。在将GitHub添加为服务之后。可以在构建配置中选择GitHub存储库。因此,您现在可以通过VSTS从GitHub构建源代码。撰写本文时的集成仍然仅限于构建过程。目前无法在计划部分中从GitHub引用代码。或在VSTS Web仪表板的代码部分中查看存储库。

0条留言

image

在本文中,我们将研究如何为Xamarin.Android应用编写UI测试。我们正在测试的应用程序是基于MVVM模式的基本应用程序。您可以在要测试的应用程序的内里找到详细的博客文章 这里 .

假设您已经有一个 Xamarin 测试云 (XTC)项目已添加到您的解决方案中。如上所述 前职位 。让我们开始准备要进行UI测试的应用程序。

为XTC测试启用Android应用

您无需执行任何操作即可使您的应用程序与XTC兼容。就是说使用Xamarin Test Cloud编写测试时。测试不应通过其显示的内容识别控件。相反,它通过一个ID来标识控件,该ID对最终用户不可见,而对用户则是不可见的ID。最好通过可访问性标签属性来设置此ID。您可以在视图的AXML代码(即控件)中进行设置:

如果区域设置更改,则此ID不必更改。即使UI元素的位置发生了变化,测试仍然可以找到它。因此,ID通常应用于标识控件,因为它们允许使用更高的弹性测试代码。

写作测试

调整完UI代码后,我们就可以开始编写测试了。一种方法是使用 XTC录音机 。尽管此工具在使用较小的应用程序时会带来巨大的好处(就像本文中的情况)。我通常更喜欢使用 替换 它易于使用,可以在测试代码中的任何位置调用。

相应地准备好UI后,我们就可以开始编写测试了。一种方法是使用 XTC录音机 。尽管此工具在使用较小的应用程序启动时会带来很大的好处(就像本文中的情况),但我通常更喜欢使用 替换 它易于使用,可以插入代码中的任何位置以启动。

一旦拥有大型测试框架,REPL就特别有用。有一个框架,即适当的助手,您可以在启动REPL之前运行那些助手。因此,您可以根据需要开始探索UI并与之交互。

XtcTreeWithIds_thumb

启动REPL就像在测试方法中添加以下行一样容易:

您可以看到概述的整个应用程序可视树。

现在,我们可以定义要在测试中执行的步骤:

注意测试如何在每个阶段截取屏幕截图。这样可以轻松确定Xamarin测试云上的步骤,并为其打上标签。对于这么小的样本,这似乎有些过大。当编写较大的测试来命名您的步骤时,即屏幕快照将帮助您缩小发生错误的位置。
关于测试的一件好事是,它们在您的本地计算机上也可以很好地运行。所以使用例如在Studio中,我们可以通过NUnit Runner执行测试:

执行测试后,在Visual Studio中显示Resharper Testrunner

您可以选择在仿真器或设备上运行测试。只需在启动应用程序时选择所需的目标即可。或将其提交到测试云,即 将其集成到我们的构建过程中.

结论

这篇文章介绍了如何开始使用Xamarin Test Cloud为Xamarin.Android编写自动化的UI测试。向您展示如何采用您的UI编写弹性测试。基于NUnit的测试在稳定且经过实践检验的基础上运行。

请记住,UI测试不是您测试应用程序所依赖的唯一测试。但结合单元测试和集成测试,它们可以为您的项目提供巨大的价值。在Xamarin Test Cloud上运行它们可让您在大量设备上运行它们。以及不同版本的Android,例如供应商口味。

您可以在上找到整个样本 的GitHub .

0条留言

标题图像显示了xamarin测试云和ios徽标

在本文中,我们将研究如何测试基于情节提要的Xamarin.iOS应用。我们正在测试的应用程序是基于MVVM模式的基本应用程序。您可以在要测试的应用程序的内里找到详细的博客文章 这里 .

假设您已经有一个 Xamarin 测试云 (XTC)项目已按以下说明添加到您的解决方案中 前职位 。让我们开始准备要测试的应用程序。

为XTC测试准备iOS

使用Xamarin Test Cloud编写测试时,理想情况下,该测试不能通过其显示的内容而是通过最终用户看不见的ID而是看不见的ID来识别控件。最好通过可访问性标签属性来设置此ID,该属性可在情节提要中的以下属性中进行设置:

显示可以在属性下的何处启用标签。

如果更改区域设置或将UI元素移动到其他位置,则无需更改此ID,因此,您可以编写更具弹性的测试代码。

写作测试

相应地准备好UI后,我们就可以开始编写测试了。一种方法是使用 XTC录音机 。尽管此工具在使用较小的应用程序启动时会带来很大的好处(就像本文中的情况),但我通常更喜欢使用 替换 它易于使用,可以插入代码中的任何位置以启动。

一旦编写了强大的测试框架,REPL就会特别有用,因为它允许您在执行一些预定步骤以达到要测试的特定点之后执行它。

显示应用的repl输出

启动REPL就像在测试方法中添加以下行一样容易:

您可以看到整个应用程序的可视化树形轮廓清晰。

现在,我们可以定义要在测试中执行的步骤:

注意测试如何在每个阶段截取屏幕截图。这样可以轻松确定Xamarin测试云上的步骤,并为其打上标签。如果在正确命名的情况下,对于较大测试中的此类小样本而言,这可能有点过大,但步骤和屏幕截图将极大地帮助您缩小错误发生的范围。
关于测试的一件好事是,它们在您的本地计算机上也可以很好地运行。因此,在Mac上使用Xamarin Studio,我们可以简单地通过NUnit Runner执行测试:

该图显示了xamarin Studio的nunit测试运行程序。

或将其提交到测试云,即 将其集成到我们的构建过程中.

结论

这篇文章介绍了如何开始使用Xamarin Test Cloud为Xamarin.iOS应用程序编写自动化的UI测试。在对UI进行一些细微调整之后,可以使用熟悉的NUnit测试框架编写测试。请记住,UI测试不应该是您应用到应用程序的唯一测试,因为它们相当慢,但如果使用得当,它们确实会带来很多价值,因为使用Xamarin Test可以轻松地在不同的设备和iOS版本上运行测试云。

您可以在上找到整个样本 的GitHub .