相关疑难解决方法(0)

内容文件更改后Visual Studio不重建

我有一个单元测试项目,其中包含一些用于数据驱动测试的XML文件.这些文件设置为"构建操作内容","如果较新则复制""始终复制".

在大多数情况下,这很好.但是,当我更改其中一个数据文件而不更改任何代码时,Visual Studio根本不会触发构建操作,也不会复制任何XML文件.实际上,我正在使用旧数据文件运行我的单元测试.

我可以触发手动构建,但是如果可能的话我想防止这样的错误.有没有办法让Visual Studio(2008)每次更改内容文件时执行复制操作?

澄清:XML文件位于单元测试项目内,而不是生产代码项目中.我[DeploymentItem]对正在运行的测试中的文件集有一个相关属性.

.net build visual-studio

18
推荐指数
2
解决办法
3241
查看次数

在运行测试时,如何进行单元测试以复制我的DLL和其他文件?

我正在开发一个应用程序,我已经为它创建了许多单元测试.具有测试类的项目取决于3个第三方DLL.当我转到测试项目的bin\Debug文件夹时,Dll就在那里.但是当我运行测试时,DLL没有被复制到TestResult \\ Out文件夹中.

还有一个我希望复制的另一个项目的log4net.config文件.这个没有出现在测试项目的bin\Debug文件夹中,所以这是我必须解决的另一个问题.

运行单元测试时如何将这些文件复制?

托尼

c# unit-testing mstest

10
推荐指数
2
解决办法
1万
查看次数

MSTest.exe没有复制所有需要的项目DLL?

我正在尝试让MSTest.exe运行,似乎testcontainer没有被正确读取; 而我的测试都在Visual Studio中的所有配置环境中成功运行.

我正在使用的命令是:

"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\MSTest.exe" /nologo /usestderr /testSettings:"C:\temp\MyProject\Sources\MyProject\Local.testsettings" /searchpathroot:"C:\temp\MyProject\Binaries" /resultsfileroot:"C:\temp\MyProject\TestResults" /testcontainer:"C:\temp\MyProject\Binaries\MyProject.Services.Server.UnitTests.dll" 
Run Code Online (Sandbox Code Playgroud)

testcontainer项目中的项目引用如下所示:

<ItemGroup>
    <ProjectReference Include="..\..\Services\MyProject.Services.Server\MyProject.Services.Server.csproj">
        <Project>{92EC1999-CC0C-47DD-A4D6-17C3B1233C50}</Project>
        <Name>MyProject.Services.Server</Name>
    </ProjectReference>
    <ProjectReference Include="..\..\SvcConfiguration\MyProject.ServiceConfiguration.Interfaces\MyProject.ServiceConfiguration.Interfaces.csproj">
        <Project>{8E2E7BA9-75DB-458E-A184-AC1030EAD581}</Project>
        <Name>MyProject.ServiceConfiguration.Interfaces</Name>
    </ProjectReference>
    <ProjectReference Include="..\..\SvcConfiguration\MyProject.ServiceConfiguration.Services\MyProject.ServiceConfiguration.Services.csproj">
        <Project>{39514766-23A8-45DB-96EA-B6B4D9C8B086}</Project>
        <Name>MyProject.ServiceConfiguration.Services</Name>
    </ProjectReference>
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)

ServiceConfiguration.Interfaces和ServiceConfiguration.Services DLL都没有放在TestResults的Out文件夹中.

项目GUID在引用和引用的项目之间匹配.

我在命令行中缺少什么?

command-line mstest

9
推荐指数
2
解决办法
6574
查看次数

使用MS-Test执行测试时无法加载DLL

在我的程序中,我使用SevenZipSharp生成zip文件。SevenZipSharp是一个托管DLL,它将加载另一个DLL 7z.dll。我使用SevenZipCompressor.SetLibraryPath手动将SevenZipSharp的路径设置为7z.dll。

当我在“调试”模式下执行程序时,一切正常,并且生成的zip文件非常好。但是,当我使用mstest执行单元测试时,SevenZipSharp始终会给我以下错误:

“测试方法引发异常:SevenZip.SevenZipLibraryException:无法加载7-zip库或内部COM错误!消息:无法加载库。”

我怀疑MSTest可能正在做某些事情阻止SevenZipSharp能够加载7z.dll,例如在一个安全沙箱中运行(或其他。我是C#和MSTest的新手...)

有谁知道会发生什么事吗?

谢谢!

c# mstest sevenzipsharp

3
推荐指数
2
解决办法
3668
查看次数

如何使数据文件可用于单元测试?

我正在使用 VS2008 TFS(使用 MSTest)。

我有一个可靠的单元测试,它依赖于项目子文件夹中的数据文件(即 testproject1\TestData)。数据文件属性为 Build Action=Content,Copy Always。(它不是这样的测试数据文件,而是生产代码读取并通常在其自己的文件夹中期望的文件)

当测试构建并执行时,数据文件被正确复制到...\TestResults\(testruniD)\Out 文件夹中,测试代码找到它。

现在,我将测试及其数据文件移动到解决方案中的另一个测试项目(它真正应该在的位置),数据文件位于与新测试项目 (testproject2\TestData) 和数据文件属性相同的文件夹中被检查为仍然如上。但是,在重新构建时,测试在新位置失败,因为数据文件尚未复制到测试结果输出文件夹,因此执行代码无法找到它。

我应该做些什么来确保仍然复制数据文件?

我之前遇到过一个相关的问题,一些数据文件被复制到测试结果输出文件夹,而有些则没有,没有明显的原因,这让我感到困惑。

TIA

mstest visual-studio

3
推荐指数
1
解决办法
969
查看次数

log4net包装器不记录(在MSTest UTs期间)

我有一个log4net的包装类来记录一组dll库中的多个类和程序集.(这可能是设计不佳,但是......不要问)代码基本上是这样的:

public static class Logger
{
    private static ILog log;

    static Logger()
    {
        log = LogManager.GetLogger("abcd");
        XmlConfigurator.Configure(new FileInfo("LoggerConfig.log4net"));
        log.Info("=== NEW SESSION ===");
    }

    public static void Log(string message)
    {
        log.Debug(message);
    }
}
Run Code Online (Sandbox Code Playgroud)

现在..如果静态构造函数是一个简单可执行文件的静态主程序,这很好用(我很快就制作了一个控制台应用程序来测试它).但在这里却没有.由于我处理独立程序集而不是可执行程序,因此我可以轻松测试记录程序的唯一方法是通过MSTest.这可能是导致此问题的原因.我不是100%肯定,如果它可能根本找不到配置文件.它在编译时被复制并且与包含记录器类的程序集位于同一文件夹中,所以我认为应该可行.

bleh ..卡住了三个小时.:T有什么建议吗?

.net c# log4net mstest visual-studio

2
推荐指数
1
解决办法
1609
查看次数