Visual Studio远程测试:添加额外Docker Run参数及相关问题
在Linux容器中使用Visual Studio远程测试的相关问题
我正在使用Visual Studio的远程测试功能在Linux容器中执行单元测试,当前使用以下配置文件,运行正常:
Dockerfile.test
FROM mcr.microsoft.com/dotnet/sdk:6.0 RUN mkdir /usr/local/temp RUN wget https://aka.ms/getvsdbgsh && \ sh getvsdbgsh -v latest -l /vsdbg
testenvironments.json
{ "version": "1", "environments": [ { "name": "GitServiceUnix", "type": "docker", "dockerFile": "Dockerfile.test" } ] }
现在需要给测试容器挂载卷,有三个问题:
- 是否可以像在调试属性中那样添加额外的
docker run参数? - 远程测试是否也支持docker-compose文件?
- 我能否自行构建并运行容器,然后让Visual Studio在该容器上执行远程测试?
问题1解答
可以。你可以在testenvironments.json的环境配置中添加dockerRunArguments字段,直接指定额外的docker run参数,包括卷挂载规则。示例配置如下:
{ "version": "1", "environments": [ { "name": "GitServiceUnix", "type": "docker", "dockerFile": "Dockerfile.test", "dockerRunArguments": "-v /本地主机路径:/容器内目标路径" } ] }
问题2解答
支持。你可以将testenvironments.json中的环境类型改为docker-compose,并指定compose文件路径与目标服务名。示例配置:
{ "version": "1", "environments": [ { "name": "GitServiceUnix", "type": "docker-compose", "composeFile": "docker-compose.test.yml", "serviceName": "你的测试服务名称" } ] }
后续只需在docker-compose文件中正常定义卷挂载、环境变量等配置,Visual Studio会基于该文件启动容器并执行测试。
问题3解答
可以。但需要确保自行启动的容器满足两个前提:
- 容器内已安装vsdbg调试工具(与你现有Dockerfile中的安装逻辑一致)
- 容器处于运行状态,且Visual Studio能够访问到它
之后在testenvironments.json中配置指向该容器,无需指定dockerFile:
{ "version": "1", "environments": [ { "name": "GitServiceUnix", "type": "docker", "containerName": "你的容器名称" // 也可以用containerId指定:"containerId": "容器ID" } ] }
配置完成后,Visual Studio会直接连接到这个已运行的容器执行测试。
内容的提问来源于stack exchange,提问作者JoJ
相关产品推荐
相关产品推荐

