모든 테스트가 실행되기 전에 코드를 한 번 실행할 수 있습니까?
기본적으로 일련의 테스트 실행을 시작하기 전에 MSTest에 약간의 코드를 실행하라고 말하고 싶습니다. 기본적으로 Main()
.
이 작업을 수행하려는 이유는 통합 테스트를 실행하는 동안 log4net으로 로깅을 수행하고 싶기 때문입니다. log4net.Config.XmlConfigurator
내 테스트 어셈블리에서 읽었을 때 이미 호출 한 어셈블리 특성을 사용할 수 없습니다 LoggerManager
. 문서는 코드 진입 점에서 명시 적으로 log4net을 구성하도록 권장하지만 내 테스트에서는 어디에 있습니까?
TestDriven.NET 및 MSTest 러너에서 테스트를 실행할 수 있어야합니다.
FWIW, 어셈블리의 모든 단위 테스트가 실행되기 전에 AssemblyInitialize 특성을 사용하여 코드를 실행할 수 있습니다 .
[TestClass]
public class SetupAssemblyInitializer
{
[AssemblyInitialize]
public static void AssemblyInit(TestContext context)
{
// Initalization code goes here
}
}
단위 테스트 어셈블리가 두 개 이상인 경우 두 개 이상의 어셈블리를 포함하는 항목을 알지 못합니다.
내가 아는 한 이것은 Main에 해당하는 것과 비슷합니다.
있습니다 AssemblyInitialize
-decorated 방법이 있어야 A의 수 TestClass
하나 이상 포함 -decorated 클래스 TestMethod
그렇지 않으면 것, -decorated 방법을 하지 실행!
완료를 위해 다음은 MSTest의 "이전 코드 실행"옵션입니다.
[AssemblyInitialize]
해당 어셈블리의 테스트가 실행되기 전에 어셈블리 당 한 번 코드를 실행하는 데 사용 합니다.[ClassInitialize]
메서드가 정의 된 클래스의 테스트 전에 클래스 당 한 번 코드를 실행하는 데 사용 합니다.[TestInitialize]
메서드가 정의 된 클래스의 모든 테스트 전에 코드를 실행하는 데 사용 합니다.
MS Test 헤더에서 이것을 볼 수 있습니다.
// Use ClassInitialize to run code before running the first test in the class
//[ClassInitialize()]
//public static void MyClassInitialize(TestContext testContext) { }
이것은 한 클래스의 테스트 전에 실행됩니다.
모든 테스트 전에 무언가를 실행하고 싶은 것 같습니다.
테스트 실행 구성에는 설정 스크립트 옵션도 있습니다.
참고 URL : https://stackoverflow.com/questions/2382552/is-it-possible-to-execute-code-once-before-all-tests-run
'IT story' 카테고리의 다른 글
Github 저장소에서 가장 빠른 커밋으로 이동하려면 어떻게해야합니까? (0) | 2020.08.17 |
---|---|
16 진수 문자열을 정수로 변환 (0) | 2020.08.17 |
WPF에서 레이블 텍스트를 중앙에 배치하는 방법은 무엇입니까? (0) | 2020.08.17 |
Hadoop 바이너리 경로에서 winutils 바이너리를 찾지 못했습니다. (0) | 2020.08.17 |
SVN : 일부 디렉토리를 재귀 적으로 무시합니다. (0) | 2020.08.17 |