如何在不同的体系结构上部署不同的文件以运行集成测试?

时间:2013-04-16 14:37:25

标签: visual-studio-2012 integration-testing mstest xslt buildconfiguration

我们有多个直接访问数据库的测试项目。这些测试基本上验证了用C#代码编写的sql查询。不幸的是,它们目前没有分开,并且在同样的程序集中也存在真正的,非依赖的单元测试(我认为那些数据库测试被认为是集成测试,如果我错了就纠正我。)

目前,我们使用2个testsettings文件(sqlserver.testsettings和oracle.testsettings)在运行测试之前部署不同的“ConnectionStrings.config”文件。它们中的每一个都具有特定于其测试数据库的连接字符串,应该在运行任何测试之前创建。我们这样做是因为我们想要使用SqlServer和Oracle数据库测试这些数据库方法,因为我们的一些客户端使用SqlServer而其他客户端使用Oracle。

考虑到这一点,我们在测试项目中有一个'app.config'文件,其中包含以下内容:

<?xml version="1.0"?>
<configuration>
  <connectionStrings configSource="ConnectionStrings.config"/>
</configuration>

我想知道是否有另一种方法可以在不使用testsettings文件的情况下执行此操作,在这种情况下,已经弃用了该文件以支持'runsettings'文件使用的新格式。我无法在runsettings规范中找到等效的自定义文件部署功能,并考虑使用ConnectionStrings.config或app.config文件上的XML转换创建多个构建配置。

XML转换的问题是这些类型的项目目前不支持它,并且在使用SlowCheetah时我很难进入构建服务器,最终决定不使用它(我有同样的configSource场景)在我们的一个Web应用程序项目上尝试转换外部配置文件。我最终将该文件与web.config合并并使用标准的msdeploy转换。)

在这种情况下你会推荐什么?这也必须在我们的构建服务器上运行。目前,我们可以使用两个testsettings文件指定相同的测试。

理想情况下,我们还希望SqlServer测试成为所有开发人员的标准,并且只选择在我们的构建服务器上运行Oracle测试。这当前不起作用,因为每个开发人员都需要在第一次运行测试之前专门选择sqlserver.testsettings文件。有了构建配置的想法,这可以实现,所以我现在倾向于这一点,但我希望听到一个可能更好的解决问题的方法。

我觉得我们在整个过程中做了一些非常错误的事情(这包括本文中提出的想法),并且应该有一种更简单直接的方法。

0 个答案:

没有答案