【问题标题】:How do I use sensitive data in a unit test in VSTS?如何在 VSTS 的单元测试中使用敏感数据?
【发布时间】:2018-04-03 12:10:36
【问题描述】:

显然,我不想将任何用户名和密码签入我的存储库。

那么我该如何处理需要私人信息的测试?我只能在本地 .gitignore 我的私有 XML 文件,但是如何在 VSTS .NET Core 测试任务中提供这些信息?

我需要以某种方式(最好以干净的方式)访问一些属性。它不一定是 XML 文件。

【问题讨论】:

  • 您是指生产或非生产系统的凭据?如果丢失了会造成什么伤害?
  • 你确定这是一个单元测试吗?
  • @PatrickHofman 这是一个小爱好项目。我买不起测试环境。目的是通过连接到服务器并做一些没人会注意到的事情来测试一小部分网络代码。具体来说,它是一个游戏服务器管理项目,我只是要告诉一个不存在的玩家你好:)。
  • 如果您的意思是使用该用户名和密码连接到 Web 服务,那么您不应该在单元测试中这样做,因为单元测试不应该这样做。
  • 听起来您正在执行集成测试,而不是单元测试。像这样的集成测试很好,但不应与单元测试混淆。如果只是将数据发送到“远程”服务,为什么不让服务在本地运行并使用本地主机地址呢?这会像远程主机一样通过堆栈发送数据包,满足您的要求。

标签: c# credentials xunit azure-pipelines-build-task


【解决方案1】:

无法通过 dotnet 测试指定/覆盖自定义/用户数据的参数。

您可以将敏感数据存储在 vsts 构建/发布的 secret 变量 中,并在 donet 测试任务之前用该变量覆盖文件(例如 XML)中的值通过令牌替换任务(例如Replace Tokens

另一方面,您可以使用带有运行设置的 Visual Studio 测试任务

VSTest:Specify Location

vstest.console.exe 的路径:C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\Extensions\TestPlatform

其他控制台选项:/framework:".NETCoreApp,Version=v2.0"

覆盖测试运行参数:xxxx

相关文章:Supplying Run Time Parameters to Tests

【讨论】:

  • 秘密变量和令牌替换插件完美运行!我还使用git update-index --assume-unchanged MyFile.xml 能够在本地运行测试。用我的文件找到正确的目录也不容易,但它现在在 VSTS 和本地都可以使用。太棒了:D。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-14
  • 1970-01-01
  • 2020-04-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多