为什么MSTest的不复制引用的项目库?(Why MSTest does not copy refe

2019-06-24 05:13发布

我有一个C#DLL项目Visual Studio解决方案。 该解决方案还具有一个测试项目,它引用了C#DLL项目的输出。 引用的项目DLL已设置复制本地=真。

如果我运行从Visual Studio这个测试,它工作正常。

但是,如果我从MSBuild任务运行,由于某种原因,MSTest的不引用C#DLL复制到MSTest的工作文件夹,所以测试失败。 奇怪的是,所有其他引用libaries被复制到MSTest的工作文件夹。 如果我把一个

 [DeploymentItem(@"PleaseCopyThis.dll")]

我的测试方法之前,最后它被复制到MSTest的工作文件夹和我的测试运行正常。

但是,为什么Visual Studio中仅复制引用的DLL这不是解决方案的一部分,但不复制引用的项目的dll?

Answer 1:

所以,我发现这篇文章: https://web-beta.archive.org/web/20140803214948/http://www.dotnetthoughts.net:80/mstest-exe-does-not-deploy-all-items/

似乎是一个MSTEST问题。

因为我有同样的问题我想出一个办法解决它。 在我的案例引用的DLL的地方从来没有真正从testproject直接使用(altough他们通过使用反射使用)。 为了解决它,我添加了下面的代码识别TestClass:

[AssemblyInitialize]
    public static void InitializeReferencedAssemblies(TestContext context)
    {
        ObjectInAssemblyX dummy = new ObjectInAssemblyX();
        ObjectInAssemblyY dummy2 = new ObjectInAssemblyY();
    }

现在,他们正在使用,使他们将被复制



文章来源: Why MSTest does not copy referenced project libraries?