问题描述
我有一些集成测试,问题是它们要求将Microsoft Access Database Engine 2010 Redistributable安装在计算机上,因此在Azure Pipelines中测试失败,因为找不到它。
需要使用MS Access Engine创建与Excel文件的连接并对其进行查询。
connectionStr = $"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={path};Extended Properties=Excel 12.0 XML;"
我需要如何克服此问题的建议。只有几个主意:
- 找到一些允许在没有Access Engine的情况下执行测试的dll 已安装(据我了解,这将无法使用,因为提供商 应该在系统中注册)
- 创建一个装有MS Access Engine的虚拟机(我想要一个更简单的解决方案)
- 设置Azure管道,以便它将在其中具有Access Engine ...以某种方式
我的问题是:
- 是否可以执行需要MS Access Engine的测试 Azure管道?
- 如果是,最简单/正确的方法是什么?
解决方法
有效的方法是在本地计算机或VM上安装Microsoft Access数据库引擎,然后可以创建self-hosted agent来运行需要MS Access Engine的测试。
在azure管道中,它支持在Microsoft托管代理和自托管代理上运行构建。
查看有关Microsoft-hosted agent configuration的文档。
Access引擎未预先安装在Microsoft托管的代理中,因此Microsoft托管的代理无法满足测试要求。可能会导致错误。
在这种情况下,正确的方法是您可以创建一个自托管代理并对其进行测试。