C# VS2010单元测试尝试启动或加载,但从未到达代码,也从未完成
我有一个从VS2010到winform应用程序Form1的自动生成的测试项目,我想测试的方法是一个int add(int x,int y)方法: 但是当我运行测试时,我看到测试正在运行,但是什么都没有发生,我甚至不能关闭或中断任何事情。我的测试项目中可能存在什么问题或缺少什么 Edit1:在调试模式下,无法到达断点,因为没有加载符号,并且调用堆栈为空 Edit2:当在VS2012中打开并运行带有测试的同一解决方案时,一切正常,但在VS2010中不正常 Edit3:似乎我在尝试运行测试时总是遇到异常:“与控制器的连接中断”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 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.");
}