Tag: mstest

在ClassInitialize中生成的数据驱动测试:不再在Visual Studio 2012中工作

我已从Visual Studio 2010升级到Visual Studio 2012。 在我的unit testing项目中,我有一个[ClassInitialize]方法生成一个CSV文件,然后使用连接到CSV的[DataSource]将其输入数据驱动的[TestMethod]。 这在Visual Studio 2010中非常有用。 我无法在Visual Studio 2012中使用它。 似乎在VS2012中,MS测试运行器需要连接到[DataSource]的文件已经存在,否则将不会运行任何测试。 如果我自己创建CSV,则会运行数据驱动的测试,但它们不会获取[ClassInitialize]中创建的数据:似乎在[ClassInitialize]运行之前评估来自[DataSource]的测试列表。 有解决方法吗? 这是一个重现问题的最小项目。 对我来说,这在VS2010中取得了成功,但在VS2012中失败了。 TestProject.cs using System.Diagnostics; using System.IO; using Microsoft.VisualStudio.TestTools.UnitTesting; namespace TestProject { [TestClass] public class DataDrivenUnitTest { private static bool _classInitializeCalled; private static int _testCount; public TestContext TestContext { get; set; } [ClassInitialize] public static void ClassInitialize(TestContext testContext) { […]

如何修复’Microsoft.NETCore.App’,找不到版本’1.1.2’?

我尝试运行unit testing时看到此错误: Testhost进程退出并显示错误:无法找到任何兼容的框架版本未找到指定的框架“Microsoft.NETCore.App”,版本“1.1.2”。 – 检查应用程序依赖性并定位安装在以下位置的框架版本: – 或者,安装框架版本“1.1.2”。 怎么解决?

MSTest无法找到assembly体

我正在使用MSTest 我使用命令mstest /testsettings:local.Testsetting /testcontainer:folder\obj\Debug\test.dll 这是输出, 运行具有以下问题:警告:测试运行部署问题:程序集或模块’Microsoft.Practices。 未找到由测试容器’test.dll’直接或间接引用的Prism。 警告:测试运行部署问题:未找到测试容器“test.dll”直接或间接引用的程序集或模块“Project.Common.dll”。 警告:测试运行部署问题:未找到测试容器“test.dll”直接或间接引用的程序集或模块“Project.Infrastructure.dll”。 警告:测试运行部署问题:程序集或模块’Microsoft.Practices。 未找到由测试容器’test.dll’直接或间接引用的Prism。 我能做些什么让MSTest运行良好。

如何使用Rhino Mock模拟扩展方法?

我有扩展IDataReader类型的对象,我需要一些扩展方法。 问题是现在当我尝试模拟IDataReader时,扩展方法不包含在mock中,所以当行Expect.Call(reader.ExtensionMethod()).Return(someValue)到达ExtensionMethod执行哪不是什么我想要! 我希望该调用是记录,当扩展方法从其他地方调用时,我希望它返回someValue 。 有谁知道怎么解决这个问题?

以64位运行测试

我有一个编译为64位的ADO.NET驱动程序。 因此,我需要在64位模式下运行mstests。 那可能吗? (开发机器是64位)。

从C#删除数据库

我有一个MDF文件,我在使用MSTEST测试期间附加到我的本地SQL服务器,我不想在运行测试集50次后手动删除这些临时数据库。 (我已经这样做了,我不喜欢它。<)我正在寻找一种方法,在我完成测试后,在我的TestCleanup方法中从服务器中删除数据库。 我只需要一些关于我将用来执行此操作的SQL语句的指导。 思考? Thx提前! :d 编辑 (由软件猴子,从OP拒绝编辑到ODED的答案) 这是适合我的代码: var server = new Server(serverName); // Can use overload that specifies foreach (Database db in server.Databases) { if (db.Name.ToLower().Contains(testDatabaseIdentifier)) { databasesToDelete.Add(db.Name); } } databasesToDelete.ForEach(x => { Database db = new Database(server, x); db.Refresh(); db.Drop(); });

在VS2010中使用MSTest测试运行错误

当我运行我的unit testing时,所有测试都通过,但是不是“测试运行成功”或者无论成功消息是什么,我在小栏中得到“测试运行错误”,告诉我有多少测试通过,即使所有测试都通过我的测试通过。 当我点击文本时,我被带到一个页面,告诉我发生了以下两件事: 警告:测试运行部署期间发生冲突:测试容器[…] \ Booking.Web.Tests.dll直接或间接引用的部署项'[…] \ Booking.Web.dll’无法部署到’预订.Web.dll’因为否则文件'[…] \ Booking.Web.dll’将覆盖直接或间接由'[…]引用的部署项'[…] \ Booking.Web.dll’ \ Booking.Web.Tests.dll” 错误:无法初始化ASP.NET项目’Booking.Web’抛出exception:网站无法正确配置; 获取ASP.NET进程信息失败。 请求’ http:// localhost:54131 / VSEnterpriseHelper.axd ‘返回错误:远程服务器返回错误:(500)内部服务器错误。 我不明白它抱怨的一半。 我该如何摆脱这些错误? (供参考:Booking.Web是一个ASP.NET MVC 2项目,Booking.Web.Tests是一个测试项目,[…]是我环境中项目的完整本地路径,在上面的大多数情况下到Booking.Web项目内的/ bin / debug /文件夹) 更新:按照说明,我在事件查看器中查找了更多信息。 这是我发现的: 3008发生配置错误。 5/8/2010 2:26:15 AM 5/8/2010 12:26:15 AM 4ffbe9180c3d4c02adb9ac4d61dd0928 1 1 0 4484bbf4-1-129177519750954331 充分 / d:\ … \ Booking.Web \ AASLOEG 1876年 WebDev.WebServer40.EXE […]

使用Moles的测试没有代码覆盖率信息

在过去的几天里,我已经习惯了OpenCover,并且我注意到使用Moles的测试不会生成任何Coverage信息。 我已经创建了一个小的解决方案来隔离问题,并且发现代码覆盖仅针对没有[HostType(“Moles”)]属性的测试生成。 阅读我发现这个和这似乎是NCover等同于我的问题。 他们说这与运行探查器的Moles以及覆盖工具有关,并且有一个环境变量CLRMONITOR_EXTERNAL_PROFILERS可以设置为允许多个分析器与Moles同时运行 – 我认为这是解决方案在哪里,但我不是100%肯定。 我想变量的值将是OpenCover分析器的名称 – 有谁知道这个名字? 有没有人设法让MoC运行OpenCover? 可以吗?

MSTest:CollectionAssert.AreEquivalent失败。 预期的集合包含1次出现

问题 : 任何人都可以告诉我为什么我的unit testing失败了这个错误消息? CollectionAssert.AreEquivalent失败。 预期的集合包含1次出现。 实际集合包含0次出现。 目标 : 我想检查两个列表是否相同。 如果它们包含具有相同属性值的相同元素,则它们是相同的。 订单无关紧要。 代码示例 : 这是产生错误的代码。 list1和list2是相同的,即彼此的复制粘贴。 [TestMethod] public void TestListOfT() { var list1 = new List() { new MyPerson() { Name = “A”, Age = 20 }, new MyPerson() { Name = “B”, Age = 30 } }; var list2 = new List() { new […]

如何使用PrivateObject访问我的类及其父级的私有成员?

我正在测试一个属于层次结构的类。 我一直在设置我的测试类和被测对象,以及一个允许访问该对象的PrivateObject 。 当我尝试访问父类的私有成员时,我遇到exception。 到目前为止,我发现的唯一解决方法是将指定基类的PrivateObject传递给PrivateObject构造函数,但是它不适用于子类的私有成员。 有没有办法可以做到这一点,也许是通过在Private对象的Get *方法上使用binding flags参数? 我尝试使用自动生成的Accessor类(右键单击主类,Create Private Accessor)。 但是,情况更糟:它显示了我可以读取的属性,但它抛出与PrivateObject相同的exception,并且没有其他选项可以使用(绑定标志或诸如此类)来修复exception。 这是我的示例测试代码。 我希望有一些方法来构造和使用PrivateObject来检索这两个字段。 public class BaseClass { private int one = 1; } public class SubClass : BaseClass { private int two = 2; } [TestClass] public class UnitTest1 { BindingFlags flags = BindingFlags.FlattenHierarchy | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance; [TestMethod] public void TestMethod1() […]