UNit 테스트에서 WPF 구성 요소 사용 - STA 사용 방법
NU 유닛 테스트에서 WPF 구성 요소를 사용해야 합니다.ReSharper를 통해 테스트를 실행하면 WPF 개체를 사용할 때 다음 오류와 함께 실패합니다.
System.잘못된 작동예외:
호출 스레드는 STA여야 합니다. 대부분의 UI 구성 요소에 STA가 필요합니다.
나는 이 문제에 대해 읽었고, 스레드가 STA여야 하는 것처럼 들렸지만, 나는 아직 이것을 하는 방법을 알아내지 못했습니다.문제가 발생하는 원인은 다음 코드입니다.
[Test]
public void MyTest()
{
var textBox = new TextBox();
textBox.Text = "Some text"; // <-- This causes the exception.
}
요구 사항을 추가해야 합니다.테스트 클래스에 대한 STA 특성입니다.
[TestFixture, RequiresSTA]
public class MyTestClass
{
}
최신 버전에서는 특성이 변경되었습니다.
[Apartment(ApartmentState.STA)]
public class MyTestClass
{}
이거 먹어봤어요?
테스트하려는 dll에 대한 app.config 파일을 만들고, UNit이 MTA가 아닌 STA로 테스트 환경을 만들도록 강제하기 위해 몇 가지 UNit 적절한 설정을 추가하기만 하면 됩니다.
편의를 위해 다음과 같은 구성 파일이 필요합니다(또는 이러한 섹션을 기존 구성 파일에 추가).
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<sectionGroup name="NUnit">
<section name="TestRunner" type="System.Configuration.NameValueSectionHandler"/>
</sectionGroup>
</configSections>
<NUnit>
<TestRunner>
<add key="ApartmentState" value="STA" />
</TestRunner>
</NUnit>
</configuration>
언급URL : https://stackoverflow.com/questions/2220418/using-wpf-components-in-nunit-tests-how-to-use-sta
'programing' 카테고리의 다른 글
| 기존 Excel 값에 선행 0/0을 특정 길이로 추가 (0) | 2023.04.29 |
|---|---|
| Windows 레지스트리에 데이터를 저장해야 하는 시기와 이유는 무엇입니까? (0) | 2023.04.29 |
| 이클립스 또는 압타나 스튜디오에서 "untab"(코드 블록을 왼쪽으로 이동)에 대한 키보드 단축키가 있습니까? (0) | 2023.04.29 |
| SQL Server Management Studio에서 테이블의 값을 빠르게 편집하는 방법은 무엇입니까? (0) | 2023.04.29 |
| Angular2 http.get(), map(), subscribe() 및 관찰 가능한 패턴 - 기본 이해 (0) | 2023.04.29 |