将 Nunit 从 v2.6.3 更新到 3.12.0 后。 我的单位停止通过。 该问题发生在单元测试中,更新后无法找到 RequiresSTAAttribute 女巫。

[Test]
[RequiresSTA]
public void When_Smart_Motion_Activity_Is_Selected_The_Values_Are_Valid()
{
     SomeViewModel vm = ViewModelHelper.CreateDefaultViewModel();
     ...
}

删除属性后测试失败,出现以下异常:

System.InvalidOperationException :调用线程必须是 STA,因为许多 UI 组件需要这样做。 在 System.Windows.Input.InputManager..ctor() 在 System.Windows.Input.InputManager.GetCurrentInputManagerImpl() 在 System.Windows.Input.KeyboardNavigation..ctor() 在 System.Windows.FrameworkElement.FrameworkServices..ctor( ) 在 System.Windows.FrameworkElement.EnsureFrameworkServices() 在 System.Windows.FrameworkElement..ctor() 在 System.Windows.Controls.Panel..ctor() 在 System.Windows.Controls.Canvas..ctor() 在项目..... :line xyz

是否有任何建议的解决方法或替代 [RequiresSTA] 适用于 3.12.0 ?

#1楼 票数:2 已采纳

您可以使用:

[Test]
[Apartment(ApartmentState.STA)]
public void When_Smart_Motion_Activity_Is_Selected_The_Values_Are_Valid()
{
     SomeViewModel vm = ViewModelHelper.CreateDefaultViewModel();
     ...
}

  ask by chalwa translate from so

未解决问题?本站智能推荐:

1回复

在全局设置线程主体的情况下运行NUnit测试

我想在WPF解决方案中为视图模型编写一些集成测试,其中线程的主体是通过AppDomain.CurrentDomain.SetThreadPrincipal(principal);全局设置的AppDomain.CurrentDomain.SetThreadPrincipal(principal);
2回复

NUnit异步测试+RequiresSTA=>等待不返回STA线程

下面的代码: 产生以下输出: 9-STA 12-MTA 然后,在新的FrameworkElement()上引发InvalidOperationException。 NUnit支持STA线程创建,现在支持异步测试,但是它似乎没有通过创建MTA SynchronizationCo
3回复

在NUnit测试中使用WPF组件-如何使用STA?

我需要在NUnit单元测试中使用一些WPF组件。 我通过ReSharper运行测试,并在使用WPF对象时失败并出现以下错误: System.InvalidOperationException: 调用线程必须是STA,因为许多UI组件都需要这个。 我已经读过这个问题了,听起来这个
1回复

如何进行视图模型测试

有人可以解释一下如何为WPF视图模型进行nUnit测试。 我是新来的。 我创建了一个nUnit项目,但是我不确定如何运行它。 是通过nUnit exe还是直接从Visual Studio? 运行测试有可用的帮助吗?
3回复

在WPF中对数据绑定进行单元测试

我正在尝试使用NUnit对自定义WPF控件进行单元测试。 该控件是按钮的ListView,绑定到列表(DataContext在控件的构造函数中设置)。 我想编写测试(例如)将项添加到列表中并检查是否有新按钮添加到视图中等。但是,当我在NUnit测试中将项添加到列表时,它仍会报告ListVi
1回复

在其自己的AppDomain中从单元测试启动WPF应用

我正在尝试从nunit运行WPF应用程序。 由于每个AppDomain只能运行一个App,因此每个验收测试将实例化一个新的AppDomain。 当我这样做时,我遇到了序列化异常。 我现在收到的异常: System.Runtime.Serialization.Serializatio
3回复

如何使用NUnit对Scheduler进行单元测试

如何使用NUnit对调度程序进行单元测试,这可以允许类似于Outlook调度的调度功能? 调度程序被编程为在特定时间或每周/每月的特定日期每天/每周/每月/每年发送消息。 如果我使用硬编码日期,那么在某些时候测试用例将失败。 还有如何测试月度和年度时间表? - 内存
1回复

单元测试ReSharper和NUnit给出不同的结果

在本地计算机上使用ReSharper 8.2,在构建服务器上使用NUnit 2.6.3,发现在ReSharper中传递了一些测试并在NUnit中失败。 在本地安装NUnit并且结果相同,因此计算机之间没有区别。 我的两个同事进行了相同的测试并得到了相同的结果,所以看起来似乎没有弄乱我的电脑。