C# VS2010单元测试尝试启动或加载,但从未到达代码,也从未完成

C# VS2010单元测试尝试启动或加载,但从未到达代码,也从未完成,c#,visual-studio-2010,unit-testing,C#,Visual Studio 2010,Unit Testing,我有一个从VS2010到winform应用程序Form1的自动生成的测试项目,我想测试的方法是一个int add(int x,int y)方法: 但是当我运行测试时,我看到测试正在运行,但是什么都没有发生,我甚至不能关闭或中断任何事情。我的测试项目中可能存在什么问题或缺少什么 Edit1:在调试模式下,无法到达断点,因为没有加载符号,并且调用堆栈为空 Edit2:当在VS2012中打开并运行带有测试的同一解决方案时,一切正常,但在VS2010中不正常 Edit3:似乎我在尝试运行测试时总是遇到异

我有一个从VS2010到winform应用程序Form1的自动生成的测试项目,我想测试的方法是一个int add(int x,int y)方法:

但是当我运行测试时,我看到测试正在运行,但是什么都没有发生,我甚至不能关闭或中断任何事情。我的测试项目中可能存在什么问题或缺少什么

Edit1:在调试模式下,无法到达断点,因为没有加载符号,并且调用堆栈为空

Edit2:当在VS2012中打开并运行带有测试的同一解决方案时,一切正常,但在VS2010中不正常

Edit3:似乎我在尝试运行测试时总是遇到异常:“与控制器的连接中断”


更新-安装VS2010 SP1后,现在测试将运行更新:通过安装VS2010 SP1,问题自行得到解决。在这之后,一切都正常了。

当您在单元测试中单步执行代码时会发生什么?是
actual=target.add(x,y)行到达?测试挂起在代码的哪一行?Form1的构造函数中发生了什么?没有任何内容addTest方法中的第一行永远不会到达。在调试模式下查看调用堆栈。你看到了什么?如果你把业务逻辑放在一个单独的类库项目中,你会在你的主项目中引用它,那么同样的问题还会存在吗?现在您可以独立地对业务逻辑进行单元测试。这是你无论如何都应该做的。当然,这并不能解释你观察到的奇怪行为。也许Visual Studio与PDB文件不同步,无法在单元测试中单步执行代码。
[TestClass()] 
public class Form1Test
{


private TestContext testContextInstance;

public TestContext TestContext
    {
        get
        {
            return testContextInstance;
        }
        set
        {
            testContextInstance = value;
        }
    }    

[TestMethod()]
    public void addTest()
    {
        Form1 target = new Form1(); // TODO: Passenden Wert initialisieren
        int x = 0; // TODO: Passenden Wert initialisieren
        int y = 0; // TODO: Passenden Wert initialisieren
        int expected = 0; // TODO: Passenden Wert initialisieren
        int actual;
        actual = target.add(x, y);
        Assert.AreEqual(expected, actual);
        Assert.Inconclusive("Überprüfen Sie die Richtigkeit dieser Testmethode.");
    }