发布Azure Web应用时test assemblies(测试程序集)是否会被一同部署?
Azure Web应用发布时测试程序集部署情况说明
默认配置下,测试程序集(test assemblies)不会被一同部署到Azure生产环境。常规的Web应用发布流程(包括Visual Studio原生发布、Azure DevOps/GitHub Actions等CI/CD流水线)默认会明确区分业务主项目和测试项目,测试项目仅在构建验证阶段执行测试用例,完成后不会被纳入最终的发布包,发布阶段只会推送主项目运行所需的必要代码和程序集到Web服务器。
以下几种特殊情况可能导致测试程序集被意外部署:
- 手动调整了发布配置文件(
.pubxml)的包含规则,新增了匹配测试项目输出路径的规则,导致测试程序集被打包进发布包 - 主业务项目错误地直接引用了测试项目,构建时测试程序集被输出到主项目的
bin目录,随主项目一同被发布 - 自定义CI/CD流水线未做发布内容过滤,直接将整个构建目录的所有输出内容都推送到了Azure
你可以通过两种方式确认自己的发布内容是否包含测试程序集:
- 本地执行发布操作时,选择输出到本地文件夹,直接检查输出目录中是否存在名称带
Test字样的.dll文件- 已部署到Azure的应用,可以通过Kudu控制台进入站点的
wwwroot/bin目录,直接排查是否存在测试相关程序集
如果担心测试代码引入安全风险,可以在CI/CD流程中新增校验步骤,扫描待发布目录如果检测到测试程序集直接中断发布流程,避免风险内容进入生产环境。
内容的提问来源于stack exchange,提问作者Craig
相关产品推荐
相关产品推荐

