Tag: mstest

CodedUI测试 – 为整个测试集启动一次浏览器

我正在VS2010中编写一些encodeUI测试来测试Web应用程序。 我希望能够在解决方案中为浏览器中的整个测试打开一次浏览器,然后在测试完成后再次关闭它。 我已经在一个方法上尝试了AssemblyInitialize属性,我的BrowserWindow.Launch在那里,但是当我运行它时它给了我以下exception: 程序集初始化方法OrdersGridTesting.SuiteSetup.Login引发exception。 Microsoft.VisualStudio.TestTools.UITest.Extension.TechnologyNotSupportedException:Microsoft.VisualStudio.TestTools.UITest.Extension.TechnologyNotSupportedException:当前不支持浏览器。中止测试执行。 当我把它放入TestMethod ,同样的代码工作正常,这让我相信这是不可能的。 有人可以提出另一种方法吗? 如果可能的话,我想要一个不涉及向项目中的每个测试类添加相同代码的方法。 谢谢!

MSTest如何确定运行测试方法的顺序?

编辑:注意,问题288805是类似的,但是,我特别询问MSTest如何选择默认测试顺序。 请看这个问题的其余部分。 谢谢Eilon 的链接 。 我正在寻找遗留的MSTest项目。 测试始终以相同的顺序运行。 订单不是字母顺序,而是在两个* .cs TestMethod文件中的方法之间反弹。 我没有改变遗留代码的物理顺序。 为方便起见,我为第一个测试的方法名称添加了“MSTest01”,将第二个测试的方法名称“MSTest02”添加到了等等。 令我惊讶的是,TestMethod函数的执行顺序发生了变化; #3第一,#6第二,#5第三,等等。 当我从TestMethod函数名中删除“MSTestnn”字符串时,它们的执行顺序变回了先前的顺序,即第一个.cs文件中的一个测试,第二个.cs文件中的两个测试,第一个中的五个测试。 cs文件,等等。 似乎文件位置可能不是一个因素,而TestMethod函数名称可能是一个因素。 问题:任何人都可以解释MSTest如何决定TestMethod函数的执行顺序?

为什么在不使用async / await关键字时异步unit testing失败?

根据这个讨论 ,以下两种方法应该没有区别: public async Task Foo() { await DoSomethingAsync(); } public Task Foo() { return DoSomethingAsync(); } 实际上,似乎对于非常简单的方法, 没有 async / await关键字的调用将是首选,因为它们会消除一些开销。 然而,这显然并不总是在unit testing中起作用。 MSTest的 [TestClass] public class AsyncTest { [TestMethod] public async Task Test1() { await Task.Delay(0); } [TestMethod] public Task Test2() { return Task.Delay(0); } } NUnit的 [TestFixture] public class AsyncTest { [Test] […]

如何从HostType(“Moles”)测试中读取UnitTest项目的App.Config

我有以下测试: [TestClass] public class GeneralTest { [TestMethod] public void VerifyAppDomainHasConfigurationSettings() { string value = ConfigurationManager.AppSettings[“TestValue”]; Assert.IsFalse(String.IsNullOrEmpty(value), “No App.Config found.”); } [TestMethod] [HostType(“Moles”)] public void VerifyAppDomainHasConfigurationSettingsMoles() { string value = ConfigurationManager.AppSettings[“TestValue”]; Assert.IsFalse(String.IsNullOrEmpty(value), “No App.Config found.”); } } 它们之间的唯一区别是[HostType(“Moles”)] 。 但第一次通过,第二次失败。 如何从第二次测试中读取App.config? 或者我可以在其他地方添加另一个配置文件?

MSTest在错误的位置寻找DLL

我有一个测试工具正在运行,并且由于Type not resolved而无法运行,更具体地说是一个错误绑定的SerializationException。 我使用fuslogvw来追踪它在寻找DLL的位置而没有找到它,我很困惑为什么它在它所在的位置: === Pre-bind state information === LOG: DisplayName = DavisVision.Common.Data, Version=3.1.0.34, Culture=neutral, PublicKeyToken=c410b32babd148a6 (Fully-specified) LOG: Appbase = file:///C:/PROGRAM FILES (X86)/MICROSOFT VISUAL STUDIO 14.0/COMMON7/IDE/COMMONEXTENSIONS/MICROSOFT/TESTWINDOW/ LOG: Initial PrivatePath = NULL LOG: Dynamic Base = NULL LOG: Cache Base = NULL LOG: AppName = vstest.executionengine.exe Calling assembly : (Unknown). === LOG: This bind starts in […]

在unit testing方法中需要总结

由于unit testing方法的命名使其目的更有意义,是否有必要将摘要添加到unit testing方法中? 例: /// /// Check the FormatException should be thrown when a give country data line contains a invalid number. /// [TestMethod] public void FormatException_Should_Thrown_When_Parse_CountryLine_Containing_InvalidNumber() { … }

防止MSTest复制/部署每个dll

从Visual Studio运行MSTest时 – unit testing执行时间相对较快。 当从命令行运行MSTest时,使用/ testsettings标志 – 执行需要永远,这是因为它花费95%的启动时间将dll复制到其Out文件夹。 有办法防止这种情况吗? 项目中的默认Local.testsettings没有对它进行任何修改(这也意味着它是空的)。 但是,如果我尝试从命令行使用相同的文件,MSTest会抱怨缺少unit testing引用的DLL。

MSTest.exe(VS2012)崩溃QTAgent32.exe

我试图通过cmdline执行我们的测试。 我使用VS2012,但我总是得到这个错误: 当我在同一台机器上直接在VS2010上运行测试时,它们运行良好。 我不能将VS2010用于cmdline,因为我们有错误的许可证(程序集查找不起作用)所以我必须使用2012.所有Windows更新都存在。 有人与MSTest / VS2012有类似的问题吗?

在Visual Studio 2010中使用代码覆盖率运行NUnit测试

我们最近从Visual Studio 2008升级到Visual Studio 2010.作为我们代码库的一部分,我们有一大堆NUnit测试。 我们希望能够在Visual Studio中运行这些unit testing,但启用了代码覆盖 。 我们有ReSharper,因此可以在Visual Studio中运行测试,但它不允许代码覆盖工具执行其操作并生成coverage统计信息。 有没有办法让这项工作,或者我们是否必须将测试转换为MSTest? 编辑:我们已经尝试过建议的工具: TestDriven.Net 这在Visual Studio中运行NUnit测试很好,甚至可以使用代码覆盖,但它还包括测试作为覆盖程序集的一部分。 似乎没有办法排除测试,但包括正在测试的程序集(我们的测试与他们测试的代码在不同的程序集中)。 我们也不想花费额外的2000英镑,这将花费我们为整个团队获得TestDriven.net。 加利奥 这没用。 为了获得覆盖输出,测试需要在Visual Studio测试运行器中运行。 Gallio不为NUnit提供此支持。 还有什么想法? 我们确实找到了几个开源尝试来让这种类型的东西工作,但是它们已经陈旧并且长时间没有被触及(因此不支持VS2010)。

Log4Net多个项目

我在我们的一个解决方案中使用log4net 。 该解决方案包含多个项目,每个项目都是一个Unit-Test项目。 我正在使用本文中描述的方法将日志记录添加到各种项目中。 我正在使用滚动文件appender将所有测试记录到单个日志文件中,该文件根据大小进行翻转。 我的每个项目都成功登录到日志文件,但是,如果我从多个项目(多个测试程序集)运行测试,我只看到来自第一个程序集的日志记录。 例如,如果我从Project_A和Project_B运行测试,我只看到Project_A’s日志记录语句(假设Project_A’s测试在测试运行中首先运行) 我已经检查过的事情: 我已将每个项目中的配置文件作为链接包含在内 我已将[assembly: log4net.Config.XmlConfigurator(ConfigFile = “Log4Net.config”, Watch = true)]到每个项目的程序集文件中。 我已经分别测试了每个项目,以确保它们在自己运行时成功记录。