Pex不接受测试方法作为种子

本文关键字:种子 测试方法 不接受 Pex | 更新日期: 2023-09-27 18:33:53

我正在尝试在我的项目中使用Pex进行探索性测试。但是,我无法让它与我现有的测试一起运行作为测试种子。

我已经成功地使用 [PexArguments] 来提供输入测试数据。为了验证,我现在按照教程并实现了大写函数。当我现在运行 Pex 时,将执行中定义为注释的测试用例。但是,不会执行方法中定义的测试。我按照这里的说明进行操作。

以防万一:我正在使用VisualStudio 2010,Pex说它是0.94版本。

有人知道我做错了什么吗?

这是我的测试类:

[PexAllowedExceptionFromTypeUnderTest(typeof(InvalidOperationException))]
[PexAllowedExceptionFromTypeUnderTest(typeof(ArgumentException), AcceptExceptionSubtypes = true)]
public partial class Class1Test
{

    /// <summary>Test stub for Capitalize(String)</summary>
    [PexMethod]
    [PexArguments("foo")]
    public string Capitalize(string value)
    {
        string result = Class1.Capitalize(value);
        return result;
        // TODO: add assertions to method Class1Test.Capitalize(String)
    }
    [TestMethod]
    public void CapitalizeSeed()
    {
        string result = this.Capitalize("foo2");
        Assert.AreEqual("Foo", result);
    }
}

Pex不接受测试方法作为种子

Pex将从测试方法CapitalizeSeed(...)中获取值,并使用它来播种其探索。但是,它不会执行该测试方法本身。当您从Visual Studio中运行Pex时,您应该看到"foo2"作为输入之一在"值"列下报告。在 return 语句之前在 PexMethod 中 ddd 一个断言,如下所示: PexAssert.AreEqual("Foo", result);您应该会看到失败的测试用例。