gpt4 book ai didi

visual-studio - 如何使用 VSTS 通过 Docker 配置 ASPNET Core,以通过单元测试和环境变量构建、运行测试并部署到 Azure

转载 作者:行者123 更新时间:2023-12-02 20:04:24 26 4
gpt4 key购买 nike

我正在尝试做一些我认为非常微不足道的事情,但显然这需要很困难。是的,整个堆栈溢出都有一些零碎的东西,但它们要么已经过时,要么实际上不起作用。

  1. 我有一个 asp.net core 站点,已使用 add/docker/linux 命令对其进行了 docker 化。
  2. 在 VSTS 中,我可以构建镜像并使用 2 个 docker-compose 项目发布它。
  3. 然后我可以通过发布管理来发布该镜像。

我不知道该怎么做:

  1. 对我的图像运行 dotnet 测试并将结果报告给 VSTS
  2. 在 Azure 应用服务容器上设置环境变量,这些变量在运行时正确传递到镜像中。

在#1上,我找不到任何关于如何设置它的最新文档,以便在开发单元测试时除非特别指定否则不会运行(如果我告诉它在 Visual Studio 中运行测试,它们应该在 docker 镜像中运行!我可以让它们始终运行,但如果它们每次开始调试时都运行,那就浪费了开发时间!)。

而且我无法弄清楚如何使用 docker-compose 或新的 VS.net 2017 15.8 方式仅通过 docker run 命令来运行测试。在我看来,我需要一个新的 dockerfile 来运行测试并生成它,然后丢弃创建的图像。但我不知道如何做到这一点,或者即使这是正确的方法。

应该如何设置来进行单元测试? (我浏览了 5 页 Google 搜索结果,但没有一个能正常工作。)

在 #2 上,应用服务中的设置和应用程序设置不会传递 docker run 中的值。我已经尝试了一切,但他们从未通过。如何在 Azure 上传递环境变量以便运行命令获取正确的 -e 参数?

最佳答案

对于#1,您可以使用 dotnet test 命令。这将生成一个 .trx 文件,VSTS 可以拾取该文件并呈现良好的测试报告。您只需设置“发布测试结果”任务即可。

dotnet test --logger trx --results-directory/var/temp

更多详情请查看此博客:Running your unit tests with Visual Studio Team Services and Docker Compose

对于#2,如果您想覆盖 VSTS 上的环境变量值并使用 Azure 应用服务容器上的值,则不完全明白您的意思。请通过powershell脚本尝试此解决方案:How to override values of environment variables on VSTS tasks

此外,建议您还浏览一下此博客,展示了 Docker 如何使用 Deployment to Azure App Service (Linux) using VSTS包括CI和CD。这可能对你有帮助。

关于visual-studio - 如何使用 VSTS 通过 Docker 配置 ASPNET Core,以通过单元测试和环境变量构建、运行测试并部署到 Azure,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51070703/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com