NUnit长字符串被截断

NUnit长字符串被截断,nunit,Nunit,我正在使用NUnit为一个知道如何将自身序列化为XML的类编写测试。该类有很多属性,因此我正在测试的函数生成的XML片段可能很长,即使在新对象的默认状态下也是如此 当我在NUnit测试运行程序中运行测试并且故意破坏了预期返回的XML时,测试运行程序只显示从将对象序列化为XML的函数返回的预期和实际字符串的截断版本。例如: MyProject.MyTests.CanCreateObjectAndEdit: Expected string length 525 but was 1485. Str

我正在使用NUnit为一个知道如何将自身序列化为XML的类编写测试。该类有很多属性,因此我正在测试的函数生成的XML片段可能很长,即使在新对象的默认状态下也是如此

当我在NUnit测试运行程序中运行测试并且故意破坏了预期返回的XML时,测试运行程序只显示从将对象序列化为XML的函数返回的预期和实际字符串的截断版本。例如:

MyProject.MyTests.CanCreateObjectAndEdit:
  Expected string length 525 but was 1485. Strings differ at index 509.
  Expected: "...ffer="False" IsThing="False" /></MyObject>"
  But was:  "...ffer="False" IsThing="False" /><MySubObject ItemID="60..."
  --------------------------------------------^
MyProject.MyTests.CanCreateObjectAndEdit:
预期字符串长度为525,但为1485。字符串在索引509处不同。
应为:“…ffer=“False”IsThing=“False”/>”

但是was:“…ffer=“False”IsThing=“False”/>几乎每个断言方法(即Assert.arequals)都将“message”参数作为第三个参数

它只打印在测试失败上,旨在提供诊断测试失败的有用信息。我认为这正是您所需要的


希望有帮助。

几乎每个断言方法(即Assert.arequals)都将“message”参数作为第三个参数

它只打印在测试失败上,旨在提供诊断测试失败的有用信息。我认为这正是您所需要的


希望有帮助。

几乎每个断言方法(即Assert.arequals)都将“message”参数作为第三个参数

它只打印在测试失败上,旨在提供诊断测试失败的有用信息。我认为这正是您所需要的


希望有帮助。

几乎每个断言方法(即Assert.arequals)都将“message”参数作为第三个参数

它只打印在测试失败上,旨在提供诊断测试失败的有用信息。我认为这正是您所需要的

希望它能有所帮助。

(对于下面代码中的任何转录错误,我深表歉意:我当时在远程计算机上测试,没有复制/粘贴)

我按照Manuel的建议测试了
消息
参数

    [Test]
    public void LongTest()
    {
        string s1 = new string('.', 1000);
        string s1 = new string('.', 500) + "+" + new string('.', 500);
        Assert.That(s1, Is.EqualTo(s2));
    }
得到了与问题中相同的结果:

将断言更改为

        Assert.That(s1, Is.EqualTo(s2), s1 + "\r\n\r\n" + s2);
将结果更改为 这可能没有什么帮助,尤其是当工具提示显示整个内容时。但是,您可以右键单击GUI runner中的该区域并复制它,您确实可以将整个文本复制到剪贴板。

(对于下面代码中的任何转录错误,我深表歉意:我当时在一台远程计算机上测试,没有复制/粘贴)

我按照Manuel的建议测试了
消息
参数

    [Test]
    public void LongTest()
    {
        string s1 = new string('.', 1000);
        string s1 = new string('.', 500) + "+" + new string('.', 500);
        Assert.That(s1, Is.EqualTo(s2));
    }
得到了与问题中相同的结果:

将断言更改为

        Assert.That(s1, Is.EqualTo(s2), s1 + "\r\n\r\n" + s2);
将结果更改为 这可能没有什么帮助,尤其是当工具提示显示整个内容时。但是,您可以右键单击GUI runner中的该区域并复制它,您确实可以将整个文本复制到剪贴板。

(对于下面代码中的任何转录错误,我深表歉意:我当时在一台远程计算机上测试,没有复制/粘贴)

我按照Manuel的建议测试了
消息
参数

    [Test]
    public void LongTest()
    {
        string s1 = new string('.', 1000);
        string s1 = new string('.', 500) + "+" + new string('.', 500);
        Assert.That(s1, Is.EqualTo(s2));
    }
得到了与问题中相同的结果:

将断言更改为

        Assert.That(s1, Is.EqualTo(s2), s1 + "\r\n\r\n" + s2);
将结果更改为 这可能没有什么帮助,尤其是当工具提示显示整个内容时。但是,您可以右键单击GUI runner中的该区域并复制它,您确实可以将整个文本复制到剪贴板。

(对于下面代码中的任何转录错误,我深表歉意:我当时在一台远程计算机上测试,没有复制/粘贴)

我按照Manuel的建议测试了
消息
参数

    [Test]
    public void LongTest()
    {
        string s1 = new string('.', 1000);
        string s1 = new string('.', 500) + "+" + new string('.', 500);
        Assert.That(s1, Is.EqualTo(s2));
    }
得到了与问题中相同的结果:

将断言更改为

        Assert.That(s1, Is.EqualTo(s2), s1 + "\r\n\r\n" + s2);
将结果更改为 这可能没有什么帮助,尤其是当工具提示显示整个内容时。但是,您可以在GUI运行程序中右键单击该区域并复制它,您确实可以将整个文本复制到剪贴板