在Visual Studio 2008中设置单元测试的简要“失败”

时间:2009-08-01 05:33:20

标签: visual-studio unit-testing

我强迫自己学习测试驱动的开发,到目前为止我很开心。 Visual Studio单元测试有一些怪癖,这让我感到沮丧。一些背景信息,我的项目文件夹如下所示:

  • [Root] BitFlex
  • BitFlex \代码
  • BitFlex \调试
  • BitFlex \文件
  • BitFlex \释放

当然,所有源代码都存储在代码文件夹中,在构建时,项目输出将根据当前配置转到调试或释放文件夹。现在我的单元测试,我已经设置好,所以测试项目输出到:

  • BitFlex \ Debug \ Unit Tests \
  • BitFlex \ Release \ Unit Tests \

1)此时,一切都很好,花花公子。这有两个问题,第一个是当我运行测试时它无法找到程序集,因为它给了我这个错误:

Error   AssignDefaultProgramTest    BitFlex.UnitTests   The test assembly 'D:\src\DCOM Productions\BitFlex\Code\TestResults\David Anderson_DCOMPRODUCTIONS 2009-07-31 23_21_00\Out\BitFlex.UnitTests.dll' cannot be loaded. Error details: Could not find file 'D:\src\DCOM Productions\BitFlex\Code\TestResults\David Anderson_DCOMPRODUCTIONS 2009-07-31 23_21_00\Out\BitFlex.UnitTests.dll'.

我似乎无法找到有关此错误的信息,或者如何解决此错误,所以我想这里的每个人都会在这里进行游戏。

2)我的另一个好处是,Visual Studio在我的代码目录中生成“Test Results”文件夹,我更愿意将其移动到任何输出配置中的Unit tests文件夹。有没有办法做到这一点,或者更好的做法是使用我的文件夹层次结构设置组织良好的单元测试?

2 个答案:

答案 0 :(得分:1)

默认情况下,MSTesting框架在“隔离”位置运行所有测试,而不是从二进制目录运行。 要解决这个问题,您可以执行以下两项操作之一: 1.转到测试配置文件并在部署下取消选中部署测试。 2.在查找外部文件时不要使用路径,而是使用deploy属性或测试配置来部署所需的文件以及测试。

答案 1 :(得分:1)

要使用MSTest执行TDD,请关闭部署。您不应该将其用于“单元测试”。

此外,永远不会让VS自动为您生成测试。对于某些类型的功能测试,生成的内容可能很好,但通常是非常差的单元测试。