C# Assembly.GetExecutionGassembly().Location有时在运行Specflow测试时返回TestResults目录

C# Assembly.GetExecutionGassembly().Location有时在运行Specflow测试时返回TestResults目录,c#,visual-studio,testing,specflow,C#,Visual Studio,Testing,Specflow,我为工作执行了一系列测试。有时,当周围的其他测试运行时,一整套测试将开始失败。然后它们会运行几次,然后再次失败。失败的关键位置是PIWrapper.Configuration.TestConfig类中的Initialize函数: /// <summary> /// Automatically initialize the context from the App.Config. /// </summary> public static void Initialize()

我为工作执行了一系列测试。有时,当周围的其他测试运行时,一整套测试将开始失败。然后它们会运行几次,然后再次失败。失败的关键位置是PIWrapper.Configuration.TestConfig类中的Initialize函数:

/// <summary>
/// Automatically initialize the context from the App.Config.
/// </summary>
public static void Initialize()
{
    // For the purpose of the unit testing use the library App.config 
    // instead of the default App.Config of the unit test engine.
    Config.CustomConfigFile = Assembly.GetExecutingAssembly().Location;
    //Initialize(@".\DIConfig.xml");

    // Initialize dependency injection using the source specified
    // in the library App.config file.
   DIContext.Initialize();
}
//
///从App.Config自动初始化上下文。
/// 
公共静态void Initialize()
{
//为了进行单元测试,请使用库App.config
//而不是单元测试引擎的默认App.Config。
Config.CustomConfigFile=Assembly.getExecutionGassembly().Location;
//初始化(@“\DIConfig.xml”);
//使用指定的源初始化依赖项注入
//在库App.config文件中。
初始化();
}
我遇到的错误是,有时项目会决定其执行程序集不在“C:\PI.FuncTest\bin\PIWrapper.dll”的位置,而是在“C:\PI.FuncTest\TestResults\Deploy\u sduggan 2016-05-24 11_41_02\Out\PIWrapper.dll”的位置,Specflow测试结果记录在该位置。当发生这种情况时(这似乎是随机的),测试文件中的所有测试将在10次中有9次表现出这种行为(第十次,它将选择正确的程序集位置),而同一项目中但不同文件中的测试运行正常


我曾经尝试过删除TestResults目录的内容,可能是因为遗留下来的东西导致了问题,但我没有这样做。因为这是公司代码,我只能发布有限的内容,但我会尽量发布我能发布的内容来解决这个问题。谢谢。

您使用的是哪种测试运行程序?再竖琴?NCrunch?Visual Studio 1?假设您正在使用MSTest作为测试框架?好问题。我正在使用内置的VisualStudio。我使用的是微软的单元测试框架。顺便说一句,我找到了一种通过改变测试类别来回避问题的方法,但我仍在试图弄清楚为什么这会产生影响,因为所说的类别似乎没有任何与之相关的附加程序。你知道问题出在哪里了吗?我面临着同样的问题,但不是随机的,而是经常发生的。@twi恐怕不是,那是几年前的事了。