测试以确定您的开发环境?

时间:2010-03-12 14:47:18

标签: asp.net development-environment

代码具有运行时依赖性,这在我们的开发环境中是不可用的(并且在test和prod中可用)。实际测试依赖项的代价很高,我想测试环境。

if (isDevEnvironment) {
    // fake it
}
else {
    // actually do it
}

不使用appSettings,您会使用什么代码/技巧/测试来设置isDevEnvironment

答案示例:

  • 检查机器名称(部分或全部)
  • 检查Visual Studio的运行实例
  • 检查环境变量

我希望进行一项我没有考虑的测试。

4 个答案:

答案 0 :(得分:3)

您应该尝试在代码中不测试您的环境!这就是为什么发明依赖倒置(然后注入)的原因。

NewSpeak中汲取灵感,其中完整的平台在对象中被抽象出来,并作为参数传递给方法调用链。

答案 1 :(得分:2)

您提供的代码(if (isDevEnvironment) ..)闻起来有test code in production

  

不使用appSettings,您将使用什么代码/技术/测试来设置isDevEnvironment?

通常,依赖注入。

但也提供了链接中可能的解决方案。

您不应该检查环境,而是需要提供环境。

答案 2 :(得分:0)

你已经掌握了主要技巧。在我目前的工作中,我们使用Enviroment变量技术。

在以前的作业中,所有服务器都有三个NIC,有公共前端,服务器到服务器流量的中间层,后端网络操作将连接到。

有不同的IP子网。它可以很容易地检测到某些东西来自何处,以及它在哪里。

示例:

  • 10.100.x.xxx - 生产子网
  • 10.100.1.xxx - 返回
  • 10.100.2.xxx - 中间
  • 10.100.3.xxx - 前

  • 10.0.1.x - 开发子网

这不需要在服务器上安装任何特殊内容,只需要代码检测然后进行缓存。

答案 3 :(得分:0)

我更喜欢这样做:

if(Properties.Settings.Default.TestEnvironment || HttpContext.Current.Request.ServerVariables["Server_Name"] == "localhost")
{
 // do something
}