问题标签 [mstest]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
unit-testing - Visual Studio MSTest 运行甚至无法启动
我使用 Visual Studio 2005 的内置单元测试功能构建了一堆单元测试。在过去的一段时间里,开始测试绝对要花很长时间......一切都只是在“待定”处停留两分钟或更长时间。现在 Visual Studio 决定将事情提升到一个新的水平,甚至从不开始测试。两到三分钟后,它会中止运行并将错误消息输入日志:
无法将 ID 为 {bfba05b1-afe5-499e-b452-29167f414f0f} 的测试运行“(blahblahblah)”排队:Microsoft.VisualStudio.TestTools.TestManagement.ExecutionException:无法为本地运行建立通信环境。
有人有想法么?从中期来看,我们计划切换到 NUnit,但现在我更愿意坚持使用 Visual Studio,因为团队的其他成员已经安装了它,这样更容易说服他们实际运行测试。 . ;-)
c# - 如何强制 MSTEST TestMethod 在运行前重置所有单例/静态?
我在 Visual Studio 2008 中使用 MSTEST。如何让某个测试类中的每个单元测试方法都像运行的第一个测试一样,以便在运行每个测试之前重置所有全局状态?我不想使用 TestInitialize、ClassInitialize、AssemblyInitialize 等显式清理世界。例如:
尽管在该主题上出现了类似的问题,但它只是澄清了测试不是并行运行的。我意识到测试是连续运行的,但似乎没有办法为每个方法显式强制一个新的 AppDomain (或等同于清除所有状态的东西)。
理想情况下,我只想为我的单元测试的一小部分指定这种行为,这样我就不必为不关心全局状态的测试(绝大多数我的测试)。
mstest - MSTest 运行失败,因为源程序集不受信任
我刚刚将 xUnit 添加到我们的测试项目中(对于 Asserts,我们仍然使用 MSTest 作为框架)并且测试运行立即拒绝执行任何测试。这是错误消息:
无法将测试运行“{ ....}”排队测试运行部署问题:文件或目录“...xUnit.dll”的位置不受信任。
c# - 在 MSTest 中的测试方法之间共享状态
如何在 MSTest 中的 TestMethods 之间共享状态。这些测试将作为有序测试按顺序运行。
提前致谢。
.net - 帮助排除 System.BadImageFormatException:
在通过联系本地 Web 服务的 .NET 3.5 SP1 项目进行调试时,我收到异常
System.BadImageFormatException:“错误的类令牌”
当然,没有更多关于导致异常的详细信息。
我可以看出发生这种情况的方法,它与调用者在同一个类中,调试器无法到达。此异常发生在调用联系 Web 服务的方法时。我确实有其他方法与 Web 服务通信,所以参考很好。
我对该方法的单元测试也因同样的异常而失败。
更正:我对该方法的单元测试是成功的,加剧了混乱。
有谁知道追踪此异常的方法?我已阅读有关异常类的文档,这使我相信其中一个程序集的版本不正确,或者构建存在问题。
在解决此异常时,您还建议采取哪些其他步骤?
multithreading - 如何编写一个 MSTest 单元测试来侦听从另一个线程引发的事件?
我正在编写一个期望从它正在调用的对象接收事件的测试。具体来说,我正在调用一个通过 SSH(使用开源 Granados 项目)连接到 AIX 机器的对象,然后断开连接,并且我想确保收到在断开连接期间引发的 OnConnectionClosed 事件。这听起来很简单,过去我写过很多这样的测试,但是这次发生了一些我认为与线程有关的奇怪行为。
基本上,我调用的对象是在与我调用它的线程不同的线程上引发“OnConnectionClosed”事件。我看到的是,当我通过从 UI 中选择“调试测试”来运行测试时,它通过了,但是如果我选择“运行测试”,它就会失败(即使在调试运行期间没有设置断点)。我做了一些谷歌搜索,发现这篇文章似乎表明默认情况下 MSTest 主机以单线程模式运行,但配置更改可以使其以多线程模式运行。这听起来像是从逻辑上解决了我的问题,但当然,它没有。
我遇到的其他一些帖子也让我认为 MSTest 根本没有监视后台线程(因此它们引发的事件没有被“听到”)。这也是有道理的,因为它似乎在调试模式下工作,而且上面的修复似乎应该在逻辑上解决这个问题,那么我对它为什么不起作用感到困惑。我可能只是没有正确处理线程,尽管如果是这种情况,我希望在调试模式下这仍然是一个问题。
有没有其他人试图以类似的方式测试一些东西?如果是这样,您是否遇到过类似的问题?如果是这样,你是如何解决它们的?
我在下面粘贴了相关的单元测试代码(出于安全原因,我删除了连接信息)。
msbuild - NUnit 和 NAnt 的未来考虑
在 .NET v1 期间,我尝试说服同事使用 NUnit 和 NAnt 的附加工具来养成测试驱动和自动化构建的工作习惯,但没有取得多大成功。当 .NET Framework 2.0 和 Visual Studio 2005 Team Suite 出现时,我能够“强制”我的团队编写测试并在 Visual Studio 中为他们自己提供可视化测试。我还能够通过额外的 MSBuild 任务来调整项目文件,以执行更多的构建自动化。
当然,这并不意味着微软已经交付了完美的系统,但我相信他们已经采取了正确的步骤。随着所有这些特性直接融入框架和产品并成为“原生”,让开发人员更容易进入更好的开发实践。
早就忘记了开源选项(我确实错过了),我想知道当前 NUnit 和 NAnt 的化身有什么价值主张?在这个阶段,有什么理由可以说服团队不使用 MSBuild 或 MSTest?
澄清:我的公司是纯微软 SI。Visual Studio Team Suite 版本、Database Professional 版本、TFS 等可供我们使用。我们不使用 Visual Studio 专业版或更低版本。
c# - 我怎样才能使 WebTest 失败?
我正在使用 Microsoft WebTest 并希望能够做类似于 NUnit 的Assert.Fail()
. 我想出的最好的方法是,throw new webTestException()
但这在测试结果中显示为 aError
而不是 a Failure
。
除了反映WebTest
设置私有成员变量来指示失败之外,还有什么我错过的吗?
编辑:我也使用了该Assert.Fail()
方法,但是当从 WebTest 中使用时,这仍然显示为错误而不是失败,并且该Outcome
属性是只读的(没有公共设置器)。
编辑:现在我真的很难过。我使用反射将Outcome
属性设置为失败,但测试仍然通过!
这是将 Oucome 设置为失败的代码:
这是我试图失败的代码:
Outcome
正在设置,Oucome.Fail
但显然 WebTest 框架并没有真正使用它来确定测试通过/失败结果。
c# - 如何让“复制到输出目录”与单元测试一起使用?
当我在执行测试之前构建单元测试项目时,测试输出被复制到 TestResults 文件夹,然后执行测试。我遇到的问题是,并非 Debug/bin 目录中的所有文件都被复制到 TestResults 项目中。
如何获取复制到 Debug/bin 目录的文件也复制到 TestResults 文件夹?
mstest - MSTest 可以在每次启动时运行特定的方法吗?
问题
有没有一种方法可以在测试程序集通过 MSTest 运行时始终运行?
类似于 [TestInitialize] 和 [ClassInitialize] 属性的工作方式,但适用于整个程序集。我不想向每个测试类的 [ClassInitialize] 方法添加代码。
推理
我的一些测试与数据库交互。他们删除对生产数据库非常有害的数据和其他内容。只有一个配置文件告诉我的单元测试项目针对非生产数据库运行。
如果有一种在启动时运行的方法会说“好的,数据库名称不是‘生产’”,我会感觉更好
想法
Log4Net 使用程序集属性来配置自身。
也许我可以做一些类似的事情?