TFS单元测试未在构建服务器上部署本地副本程序集到测试目录

4
我有一个程序集需要在测试输出目录中,以便我的测试运行。我已经将程序集作为本地副本引用到项目中,但在构建服务器上会被忽略。我发现两种解决方法:
  1. 在测试方法中添加一个特殊属性,以确保每个测试都有该文件。
    [DeploymentItem("my assembly")]
    这种方法并不实用,因为几乎每个测试都需要该程序集。
  2. 添加一个包含特殊部署部分的测试运行配置文件。我在构建脚本中使用TestContainer运行测试,我认为这可能是我包含的测试运行配置文件没有被选中和程序集没有被复制的原因。我不想使用vsmdi测试列表文件,因为我试图运行所有测试,我感觉这将违反DRY原则。
您有关于如何使我的测试运行的任何建议吗?

1
你的测试程序集是否明确引用了“My Assembly”程序集中存在的类型?如果由于某些原因没有引用,比如动态加载类型,那可能就是问题所在。 - Jérôme Laban
我正在使用带有NHibernate的SQLite内存数据库。SQLite程序集是由NHibernate动态加载的。我已经在测试程序集中包含了一个引用,但没有类型的引用。我将尝试在设置我的测试时添加显式类型引用,看看是否有所帮助。 - Graham Ambrose
1个回答

3

当我的程序集被动态加载时,单元测试框架没有将其复制。我通过在程序集中调用一个类型的typeof来显式引用它,问题得到了解决。

感谢Jerome Laban对此问题的帮助。


我曾经遇到同样的问题,stackoverflow挽救了我的一天 :) - thijs

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接