Tag: nunit

以编程方式运行单个NUnit测试

我需要以编程方式运行单独的C#NUnit测试。 我发现另一篇文章非常有助于向我展示如何以编程方式运行整套测试,但我需要能够选择单独的测试。 我认为设置一个NameFilter可以解决这个问题,但RemoteTestRunner似乎只认为在我的套件中有超过五十的时候有一个测试。 它是否真的将单个DLL中的所有测试集中到一个庞大的测试中? 有没有办法可以将它们分开并运行单独的测试用例?

unit testing:自包含测试与代码重复(DRY)

我正在进行unit testing的第一步,并且不确定两个在unit testing中似乎相互矛盾的范例,即: 每个unit testing都应该是独立的,而不是依赖于其他测试。 不要重复自己。 更具体一点,我有一个我想测试的import商。 导入器具有“导入”function,可以获取原始数据(例如,从CSV中获取)并返回某种类型的对象,该对象也将通过ORM(在本例中为LinqToSQL)存储到数据库中。 现在我想测试几件事,例如返回的返回对象不为null,它的必填字段不为null或为空,并且它的属性得到了正确的值。 我为此写了3个unit testing。 每个测试应该导入并获得作业还是属于一般的设置逻辑? 另一方面, 相信这篇博文 ,就我的理解而言,后者将是一个坏主意。 此外,这不会违反自我遏制吗? 我的class级看起来像这样: [TestFixture] public class ImportJob { private TransactionScope scope; private CsvImporter csvImporter; private readonly string[] row = { “” }; public ImportJob() { CsvReader reader = new CsvReader(new StreamReader( @”C:\SomePath\unit_test.csv”, Encoding.Default), false, ‘;’); reader.MissingFieldAction = MissingFieldAction.ReplaceByEmpty; int fieldCount = […]

如何使用NUnit模拟属性?

如何使用NUnit模拟属性? 注意 :我发现这个外围模拟答案非常有用,并将其作为一个独特的问答条目重新用于其他人,以供其他人查找。 其他答案也欢迎。 NUnit-Discuss注意: NUnit Mocks是在一个周末创建的玩具模拟实现[…]我开始认为这是一个错误,因为你远远不是第一个依赖它的人。 – http://groups.google.com/group/nunit-discuss/msg/55f5e59094e536dc (NUnit Mocks上的Charlie Pool)

我可以配置NUnit,以便在运行测试时Debug.Fail不显示消息框吗?

我有这个属性: public SubjectStatus Status { get { return status; } set { if (Enum.IsDefined(typeof(SubjectStatus), value)) { status = value; } else { Debug.Fail(“Error setting Subject.Status”, “There is no SubjectStatus enum constant defined for that value.”); return; } } } 和这个unit testing [Test] public void StatusProperty_StatusAssignedValueWithoutEnumDefinition_StatusUnchanged() { Subject subject = new TestSubjectImp(“1”); // assigned by casting […]

NUnit嵌套集合比较

是否有类似于CollectionAssert.AreEquivalent()的东西适用于嵌套集合? 以下代码…… CollectionAssert.AreEquivalent ( new Dictionary<int, Dictionary> { { 1, new Dictionary { { 10, “foo” }, { 11, “bar” }, { 12, “spam” } } }, { 2, new Dictionary { { 20, “eggs” }, { 21, “eels” } } }, { 3, new Dictionary { { 30, “hovercraft” } } } }, new […]

如何使用流畅断言组合集合和属性断言?

我想“结合”Fluent Assertion的集合断言和属性断言,例如断言两个IEnumerable是成对相等的,使用逐个属性(可能是“嵌套”)比较(即结构相等,用函数式语言说法)。 具体例子: var dic = new Dictionary() { {1, “hi”}, {2, “bye” } }; var actual = dic.ToSelectListItems(0).OrderBy(si => si.Text); var expected = new List() { new SelectListItem() {Selected = false, Text=”bye”, Value=”2″}, new SelectListItem() {Selected = false, Text=”hi”, Value=”1″} }; 在这里,我编写了一个扩展方法ToSelectListItems ,它将Dictionary转换为IEnumerable的SelectListItem (来自ASP.NET MVC)。 我想声明actual和expected在“结构上”相等,注意引用类型SelectListItem不会覆盖Equal ,因此默认情况下使用引用相等。 更新 目前使用以下手动解决方案,仍然希望在FluentAssertions中内置更好的内容: public static void ShouldBeStructurallyEqualTo(this IEnumerable […]

Moq测试无效方法

嗨,我是Moq测试的新手,并且很难做一个简单的断言。 我正在使用界面 public interface IAdd { void add(int a, int b); } IAdd接口的Moq是: Mock mockadd = new Mock(); mockadd.Setup(x => x.add(It.IsAny(), It.IsAny()).callback((int a, int b) => { a+b;}); IAdd testing = mockadd.Object; 由于add方法为void,因此它不会向Assert with返回任何值。 我该如何断言这个设置?

将lambda传递给参数化的NUnit测试

我有一个带有一堆重载运算符的类: public static double[,] operator +(Matrix matrix, double[,] array) public static double[,] operator -(Matrix matrix, double[,] array) public static double[,] operator *(Matrix matrix, double[,] array) 对于所有这些我想测试操作数为null。 我有一个NUnit测试: public void MatrixOperatorOperandIsNullThrows(Func op) { Matrix m = null; var right = new double[,] {{1, 1}, {1, 1}}; Assert.Throws(() => op(m, right)); } 如何为每个运算符传递lambda,如(l,r) => l + r […]

使用mono / nunit-console / 4在Mac OS X控制台上运行测试

我安装了Max OS X 10.11.1,上面装有Xamarin。 我编写了简单的测试类,只是为了测试在Mac OS X和Ubuntu上运行的Nunit测试,类实际上有一个返回字符串的方法: using System; namespace testing_project { public class EmptyClass { public EmptyClass () { } static void Main(string[] args) { } public string helloWorld() { return “Hello World!”; } } } 我有一个NUnit类来测试我的EmptyClass: using System; using NUnit.Framework; namespace testing_project { [TestFixture] public class EmptyClassTest { [Test] public void testHelloWorld() { […]

TeamCity 8中的DotCover不起作用

我尝试使用我的NUnit测试运行dotCover,在TeamCity 8中作为构建步骤。 但是没有遇到我尝试的东西我总是在日志文件中得到相同的错误: 步骤4/4:覆盖范围(NUnit)(1s) [步骤4/4]开始:C:\ TeamCity \ buildAgent \ plugins \ dotnetPlugin \ bin \ JetBrains.BuildServer.NUnitLauncher.exe #TeamCityImplicit 目录中的[步骤4/4]:C:\ TeamCity \ buildAgent \ work \ 6aee0f0d2626793d [步骤4/4] ## teamcity [importData type =’dotNetCoverage’tool =’dotcover’file =’C:\ TeamCity \ buildAgent \ temp \ buildTmp \ coverage_dotcover3226256377023598081.data’] [步骤4/4]使用’dotNetCoverage’处理器从’C:\ TeamCity \ buildAgent \ temp \ buildTmp \ coverage_dotcover3226256377023598081.data’导入数据 [步骤4/4]拒绝的覆盖率报告文件:C:\ TeamCity \ […]