我问这个问题只是想看看是否可以使用用户凭据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获取数据。(