2016-12-27 108 views
1

我正在多环境设置(DEV,TEST,PREPROD,PROD)中工作,需要编写可以在环境之间轻松切换的测试(使用例如环境作为输入参数)。多环境设置中的C#数据库环境

我的测试需要做数据库查找。目前我已经为每个环境创建了一个DBContext。 Image of solution explorer

目前我的测试负责创建正确的数据库上下文

像这样:我知道,这是穷人的代码风格和我正在寻找一种方式来创建一个

if (environment.ToLower().Equals("test")) { 
      var arkiv = new TransformContentCenter_TestEntities1(); 
      var invoicesNotProcesseed = entries 
       .Where(row => !arkiv.Brevarkiv.Any(row1 => row1.ReferenceNumber.Equals(row.invoiceNo) && row1.LetterType=="Invoice")).ToList(); 

数据库层负责环境处理。但我不知道哪种设置是最佳实践来处理这种情况,以及如何将其实施到我的解决方案中。任何帮助是非常赞赏:)

+0

你的测试应该真的在做实际的数据库查询吗?只是好奇。 – Amn

+0

@Amn为什么不呢?你会如何测试?我所有的数据库查找都使用SQLite进行测试并在构建服务器上运行,因为它支持内存数据库。部署完成后,将使用sql服务器。 –

+0

为什么你需要在多个环境下运行单元测试?您只需要对开发者进行验证,以确认您的应用程序运行正常。您的应用程序应该没有环境概念,应该在部署时给它所需的变量。构建一次并随时随地部署。 –

回答