【发布时间】:2009-10-07 11:10:57
【问题描述】:
对于我的项目,我正在使用集成的 Visual Studio 单元测试框架,但我遇到了一些以前从未见过的问题。
我的一个课程导致 VSTestHost 崩溃。所以首先我认为这是因为有一堆代码导致堆栈溢出。真正奇怪的是,现在,即使我创建一个新项目或使用以前工作的旧项目,VSTestHost 也会立即崩溃(在我单击运行测试按钮后 1/2 秒)。事实上,我不能再进行单元测试了......这真的让我发疯了。
我尝试了许多在 Internet 上找到的解决方案来解决该问题,但都没有奏效。我必须将 Windows 恢复到上次更新才能使其恢复正常工作。可以肯定的是,它是一个特定的测试类导致单元测试框架发疯。当我第一次运行这个测试类时,一切顺利并且所有测试都通过了,然后每次我尝试运行单元测试时,VSTestHost 都会崩溃,阻止我在任何项目中进行单元测试。
在这里,我向您展示了据称使程序崩溃的测试。我的 LoadFromExe() 方法只是使用 ConfigurationManager.OpenExeConfiguration() 方法。现在一个月,我可以毫无问题地使用这个 AlphaProjectConfiguration。
[TestMethod()]
public void LoadGoodConfigurationFromExeTest()
{
using (StreamWriter sw = new StreamWriter(ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None).FilePath))
{
sw.Write(Resources.GoodConfiguration);
}
AlphaProjectConfiguration actual = new AlphaProjectConfiguration();
actual.LoadFromExe();
Assert.IsNotNull(actual);
}
我只是全力以赴解决这个问题,现在我真的要摆脱它了。这就是我现在向社区寻求帮助的原因。 谢谢。
编辑: 这个测试类包含 3 个几乎做同样事情的其他测试。 我在带有 VSTS 2008 SP1 的 Windows 7 x64 和 Windows XP x86 上试过这个。两个系统都发生崩溃。
【问题讨论】:
标签: c# .net unit-testing tdd