2011-09-01 129 views
6

我是新来的单元测试,所以我可能误解的东西大了,但我一直要求创建我的WCF服务的一些单元测试。这是一个非常简单的服务,它执行存储过程并返回结果。在我操作的第二行是这样的:在部署该服务时失败的单元测试,由于缺少config文件

string conn = ConfigurationManager 
    .ConnectionStrings["AtlasMirrorConnectionString"].ConnectionString; 

一切正常,但在单元测试,它似乎是配置文件变得不可见。 ConfigurationManager.ConnectionStrings["AtlasMirrorConnectionString"]成为空引用并相应抛出。

怎样包括测试我的配置文件?现在,我能够测试的唯一行为是缺少的配置文件,这还不是特别有用的处理。

回答

5

又问一次又一次和我回答上周本周还有:)

,如果你有你的单元测试的另一个项目(VS生成的测试项目,类库等)只是创建为单元测试项目中的应用程序配置,并把相同的配置密钥为你在有效的项目中有效。

当然,我很简单,因为你可以绝对想要定制那些具有特定测试值的键,但作为一个起点复制什么工作,然后定制,如果你想指向另一个数据库,机器等...... :)

+1

对不起相同的价值观,我做了搜索,但couldn”在任何地方都能找到。 – recursive

+1

该解决方案将工作,但它是不是一个很好的长期选择。最好有一个解决方案,在解决方案发生变化时,配置文件将保持最新。 – zlsmith86

3

你必须来装点测试类或方法与DeploymentItemAttribute部署配置文件到test目录。

使用这样的事情在你的TestClass(这里假设你有地方在app.config的拷贝到你的testclasses):

[DeploymentItem("app.config")] 
3

如果你希望你的单元测试总是为你的项目,那么你可以使用下面的行作为测试项目生成后事件

copy /Y "$(SolutionDir)ProjectName\App.config" "$(TargetDir)TestProjectName.dll.config" 
相关问题