测试自动化-TeamCity+;葫芦+;吉拉+;呼吸试验

测试自动化-TeamCity+;葫芦+;吉拉+;呼吸试验,teamcity,jira,calabash,spiratest,Teamcity,Jira,Calabash,Spiratest,我是TeamCity/Spiratest的新手,有以下要求: (a) 我们必须让TeamCity运行葫芦测试和 (b) 然后,如果出现故障,则必须将屏幕截图记录到JIRA以获取缺陷 (c) 最后更新SpiraTest(我们的测试管理工具)中的通过/失败状态 我遇到了另一个话题:;但却无法在那里提问;所以,在这里发布一个新主题 (A) 您能否详细说明和指导如何配置TeamCity来运行葫芦ios测试 (B) 如果您对如何将结果与测试管理工具SpiraTest集成并在JIRA中记录失败测试的缺陷有想

我是TeamCity/Spiratest的新手,有以下要求: (a) 我们必须让TeamCity运行葫芦测试和 (b) 然后,如果出现故障,则必须将屏幕截图记录到JIRA以获取缺陷 (c) 最后更新SpiraTest(我们的测试管理工具)中的通过/失败状态

我遇到了另一个话题:;但却无法在那里提问;所以,在这里发布一个新主题

(A) 您能否详细说明和指导如何配置TeamCity来运行葫芦ios测试

(B) 如果您对如何将结果与测试管理工具SpiraTest集成并在JIRA中记录失败测试的缺陷有想法;那将是一个很大的帮助

期待投入


非常感谢,

我正在跟进您的问题。 不能告诉你TeamCity或Selenium有多少,我们正在使用Bambol和JIRA,我刚刚开始研究葫芦测试与JIRA的集成

(A)部分 TeamCity、Bambor和Jenkins之间应该没有太大区别。它们都支持运行自定义shell脚本。你需要在你的CI盒上安装Ruby和所有需要的宝石(黄瓜、葫芦黄瓜等)。 下面是我们用于测试的竹CI计划的示例

  • 签出iOS应用程序代码
  • 向应用程序添加葫芦框架(使用葫芦ios设置的shell脚本)
  • 构建葫芦测试目标(使用xcodebuild的shell脚本)
  • 签出测试代码(我们将其保存在单独的repo中)
  • 对iOS应用程序测试目标运行cucumber测试
最后一部分是一个简单的shell脚本,类似于

cucumber-p烟雾试验
这将运行烟雾测试配置文件并以HTML格式创建测试报告。 然后可以使用Cucumber测试报告插件。我知道Jenkins和Bambor肯定有一个,所以TeamCity也应该有一个,或者干脆选择HTML并将其作为测试结果发布

(B)部分 我刚开始调查,以下是一些发现

大西洋CLI Atlassian为其所有产品提供了一套CLI。 这是一套完整的工具,如果您不想下载所有工具,您可以在市场上搜索JIRA only软件包

这些工具具有适用于类UNIX系统的.sh脚本和适用于Windows的.bat文件。 这是,这是。 在CI框上安装工具,更新所有路径,您将能够从CI任务甚至Cucumber步骤和场景挂钩中使用Atlassian命令

对于Mac OS X,有两个用于和cli的自定义自制tap,但每个都以不同的方式安装工具,而且,这两个工具都已过时并安装旧版本的cli

另外,还有一个RubyGem,名为,你必须安装在MacOSX上。我还没有尝试使用这个gem,但它看起来很有前途

使用标记和场景挂钩 这就是我现在正在努力做的事情

有了JIRA,你肯定会遇到用户故事、bug和其他类型的项目问题。 通常情况下,场景将与某个用户故事相关,或者一个用户故事可以有多个场景,甚至可以在多个用户故事之间共享一个场景

我们还有一些场景是针对JIRA中特定bug的回归测试

无论如何,您可以使用标记将葫芦/黄瓜场景链接到JIRA问题和项目。 用项目名称标记每个功能,如@JIRA-project-,也用JIRA问题名称标记场景@JIRA-issue-

这里有一个例子

@JIRA-PROJECT-X
功能:ProjectX的一些功能
特征描述
@JIRA-ISSUE-X-123
场景:用户故事或Bug X-111的一些场景
然后使用。 执行钩子时,您有场景对象。 此对象具有更新JIRA所需的所有信息。 它已经通过了?失败了?方法,更重要的是,所有标记

put场景。源\标记\名称。连接(“,”)
#=>@JIRA-ISSUE-X-123,@JIRA-PROJECT-X
现在,您可以从标记中找出JIRA项目和所有相关问题,并为每个问题创建测试会话。测试会话只是另一个具有适当父级的“测试”类型的问题。请参见下面的粗略示例,需要对其进行修改,以便为与场景相关的每个问题创建测试会话

在do |场景之后|
project=scenario.source_tag_names.find{t|t.start_with?(“@JIRA-project”)}.gsub(“@JIRA-project-”,”)
issue=scenario.source_tag_names.find{t|t.start_with?(“@JIRA-issue”)}.gsub(“@JIRA-issue-”,”)
摘要=”