使用 IProvideDynamicTestMethods 进行 silverlight 4 单元测试

发布于 2024-12-05 08:02:18 字数 1344 浏览 1 评论 0原文

有没有人有幸创建自己的自定义测试类并使用 IProvideDynamicTestMethods 接口?我有一个情况,我需要动态生成测试方法,这似乎就是我所需要的。我的目标是根据我正在测试的一些文件生成测试方法。

Jeff Wilcox 提到这是 SL3 中的一项新功能 ( http:// /www.jeff.wilcox.name/2008/09/rc0-new-test-features/ ,请参阅动态测试方法部分),但我找不到任何这方面的示例。

我不知道如何注册我的自定义测试类(它继承自ITestClass)。我查看了 SL4 单元测试源以了解如何发现测试类,并在 UnitTestFrameworkAssembly.cs 源链接

    /// <summary>
    /// Reflect and retrieve the test class metadata wrappers for 
    /// the test assembly.
    /// </summary>
    /// <returns>Returns a collection of test class metadata 
    /// interface objects.</returns>
    public ICollection<ITestClass> GetTestClasses()
    {
        ICollection<Type> classes = ReflectionUtility.GetTypesWithAttribute(_assembly, ProviderAttributes.TestClass);
        List<ITestClass> tests = new List<ITestClass>(classes.Count);
        foreach (Type type in classes)
        {
            tests.Add(new TestClass(this, type));
        }
        return tests;
    }

看起来它将始终使用内置的 TestClass。 我错过了什么吗?我不知道如何让测试框架使用我的自定义 TestClass

任何指针。 谢谢

Has anyone had any lucking creating their custom test class and using the IProvideDynamicTestMethods interface? I have a case where I need to dynamically generate test methods and this seems to be what I need. I goal is to have test methods generated based on some files I am testing.

Jeff Wilcox mentions this as a new feature in SL3 ( http://www.jeff.wilcox.name/2008/09/rc0-new-test-features/ , see the dynamic test methods section), but I was unable to find any examples of this.

I don't know how to register my custom test class (it inherits from ITestClass). I looked at the SL4 unit testing source to see how the test class are discovered and I found the following in UnitTestFrameworkAssembly.cs source link

    /// <summary>
    /// Reflect and retrieve the test class metadata wrappers for 
    /// the test assembly.
    /// </summary>
    /// <returns>Returns a collection of test class metadata 
    /// interface objects.</returns>
    public ICollection<ITestClass> GetTestClasses()
    {
        ICollection<Type> classes = ReflectionUtility.GetTypesWithAttribute(_assembly, ProviderAttributes.TestClass);
        List<ITestClass> tests = new List<ITestClass>(classes.Count);
        foreach (Type type in classes)
        {
            tests.Add(new TestClass(this, type));
        }
        return tests;
    }

It looks like it will always use the built-in TestClass.
Am I missing something? I don't how to get the test framework to use my custom TestClass

Any pointers appreciated.
Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

前事休说 2024-12-12 08:02:18

看起来现在设置此功能的唯一方法是为测试运行器编写自己的 UnitTestProvider。好处是代码是可用的,所以做到这一点并不难。

您可以从 codeplex 此处 获取默认 Vstt 的代码并进行您喜欢对其进行任何更改。我现在仍在尝试这个,所以让我们看看进展如何。我通过查看 这个 github 项目得到了这个想法。
关键是插入您自己的提供程序,这是在 Raven.Tests.Silverlight.UnitTestProvider.Example/App.xaml.cs 中完成的。

希望这对某人有帮助

It looks like the only way to set this up right now is to write your own UnitTestProvider for the test runner. The good thing is the code is available, so it's not too hard to do this.

You can either grab the code from the default Vstt from codeplex here and make any changes you you like to it. I'm still experimenting with this right now, so lets see how this goes. I got this idea by looking at this github project.
The key was to plug in your own provider, which was done in Raven.Tests.Silverlight.UnitTestProvider.Example/App.xaml.cs.

Hope this helps someone

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文