在specflow测试中使用tfs访问令牌



我问这个问题只是想看看是否可以使用用户凭据Token来访问tfs(TestCase(数据来运行specflow测试。

上下文:我们有CI/CD管道,可以运行使用specsync同步到TFS的19K以上的Specflow测试。我们的大多数测试都是使用场景大纲进行数据驱动的。在我们的Release Management管道中,我们设置了要在多台测试机上执行的测试运行。但是,我们需要将用户凭据缓存到每台机器中的tfs集合/项目中,以便让测试获取测试数据。

问题:很多时候,我们的测试都失败了,结果是:

  • 单元测试适配器无法连接到数据源或读取数据。有关解决此错误的详细信息,请参阅"数据驱动单元测试疑难解答"(http://go.microsoft.com/fwlink/?LinkId=62412)MSDN Library中。错误详细信息:找不到请求的。Net Framework数据提供商。可能未安装。*

失败是因为tfs访问凭据不再有效,原因包括密码已更改或用户不再有效等。因此,我们需要连接到每台机器(超过10台(并重置tfs访问凭据。

要求:是否有方法将tfs标记化凭据嵌入到规范流测试(功能文件(或配置文件中,以便数据源访问对测试运行是透明的?

BR

通常,您可以使用个人访问令牌(PAT(连接到TFS(有关详细信息,请参阅此部分(,但我不知道是否有任何方式将其传递给TestCase数据源。

在您的情况下,测试方法是由SpecSync生成的,您可以配置SpecSync将测试数据嵌入到生成的方法中,而不是从TFS中获取数据。

在SpecSync v1.*中,这可以通过在App.config文件中为SpecSync插件注册指定merged-examples参数来完成,如下所示:

<add name="SpecSync.MTM" type="Generator" parameters="merged-examples" />

从SpecSync v2(当前处于预发布状态(,这将是默认行为,但您可以在specsync.json配置文件中更改它:

{
...
"specFlow": {
"scenarioOutlineAutomationWrappers": "iterateThroughExamples"
},
...
}

(这里iterateThroughExamples使用嵌入式测试数据(默认(,useTestCaseData将从TFS获取数据。(

最新更新