【问题标题】:Configuring TeamCity + NUnit unit tests so files can be loaded properly配置 TeamCity + NUnit 单元测试,以便正确加载文件
【发布时间】:2010-03-27 06:09:18
【问题描述】:

简而言之,我有一个在 IDE 中构建良好的解决方案,并且单元测试在 NUnit GUI 上运行良好(通过 NUnitit VS2008 插件)。但是,当我执行我的 TeamCity 构建运行程序时,所有需要文件访问的单元测试(例如,针对特定 XML 文件运行测试),我只会得到 System.IO.DirectoryNotFoundExceptions。

原因很清楚:它在错误的文件夹中寻找那些支持由各种单元测试加载的 XML 文件。

我的单元测试的结构如下所示:

+-- project folder
    +-- unit tests folder
        +-- test.xml
        +-- test.cs
    +-- project file.xaml
    +-- project file.xaml.cs

我所有的项目都拥有自己的 UnitTests 文件夹,其中包含 .cs 文件以及运行测试所需的任何 XML 文件、XML 架构等。

所以当我编写我的 test.cs 时,我让它在代码中寻找“test.xml”,因为它们在同一个文件夹中(实际上,我做了类似 ....\unit tests\test.xml ,但这有点愚蠢)。正如我之前所说,测试在 NUnit 中运行良好。但那是因为单元测试是项目的一部分。从 TeamCity 运行单元测试时,我针对复制到主应用程序输出文件夹的程序集执行它们。这些单元测试 XML 文件应该为了让测试通过而随意复制到输出文件夹。

谁能建议一种更好的方法来组织我在每个项目中的单元测试(这是主应用程序的依赖项),这样我就可以从 NUnit 从 TeamCity 构建运行器执行单元测试?我能想到的唯一其他选择是将测试 XML 数据放入代码中,而不是从文件中加载它。我宁愿不这样做。

【问题讨论】:

    标签: visual-studio-2008 unit-testing nunit continuous-integration teamcity


    【解决方案1】:

    有时,最好在发布问题之前先解决问题。我应该知道我应该只输入程序集自己的项目调试文件夹的相对路径。问题解决了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多