단위 테스트를위한 테스트 데이터 파일 경로
현재 VS 2008에서 표준 Microsoft 단위 테스트 제품군을 사용하고 있습니다. ReSharper 4.5도 설치되어 있습니다. 내 단위 테스트는 데이터 파일을 미리로드하는 TestInitialize 메서드를 사용합니다. 이 테스트 데이터 파일의 경로는 표준 Ctrl-R + Ctrl-T 명령과 Resharper 단위 테스트 실행 명령을 사용하여 VS 2008 내에서 단위 테스트를 실행하는지 여부에 따라 다릅니다.
내 TestInitialize 메서드가 단위 테스트 데이터 파일의 올바른 경로를 어떻게 알 수 있습니까?
최신 정보:
테스트 데이터는 문자열로 밀어 넣고 싶지 않을 정도로 충분히 크기 때문에 외부 파일로 유지하는 것을 선호합니다. 내 테스트 프로젝트의 파일 구조는 MVC 응용 프로그램으로 만든 표준 단위 테스트 프로젝트의 구조입니다. 테스트 프로젝트의 루트 아래에 'Test Data'라는 새 폴더가 생성되었습니다. 테스트 러너에 관계없이 액세스하고 싶은 폴더입니다.
테스트 파일의 위치는 테스트 러너에 따라 다르므로 프로젝트에 포함되어 있고 dll과 함께 복사되었다고 가정합니다.
string path = AppDomain.CurrentDomain.BaseDirectory;
그러면 테스트를 실행하는 폴더가 표시됩니다.
[편집하다]
Visual Studio에서.
Resharper-> 옵션-> 도구-> 단위 테스트-> 결과 실행 위치 : 지정된 폴더 (또는 테스트 프로젝트의 프로젝트 출력 폴더 변경)
테스트 데이터의 폴더를 지정할 수 있거나 지정된 폴더에 상대적입니다.
(.net 코어 다중 대상 프로젝트 출력 경로도 허용하도록 원래 답변이 업데이트 됨)
테스트 데이터 파일이 루트 "Test_Data"폴더 내의 "testDataFolder"매개 변수로 전달하는 폴더에 있다고 가정합니다.
public static string GetTestDataFolder(string testDataFolder)
{
string startupPath = ApplicationEnvironment.ApplicationBasePath;
var pathItems = startupPath.Split(Path.DirectorySeparatorChar);
var pos = pathItems.Reverse().ToList().FindIndex(x => string.Equals("bin", x));
string projectPath = String.Join(Path.DirectorySeparatorChar.ToString(), pathItems.Take(pathItems.Length - pos - 1));
return Path.Combine(projectPath, "Test_Data", testDataFolder);
}
테스트 스위트 초기화 루틴에서 처음부터 테스트 데이터를 생성합니다.
이것은 특정 위치에있는 것에 의존하지 않고 부주의 한 조작으로부터 안전함을 의미합니다.
참조 URL : https://stackoverflow.com/questions/1776331/path-to-test-data-files-for-unit-testing
'programing' 카테고리의 다른 글
GWT : GET 요청에서 URL 매개 변수 캡처 (0) | 2021.01.14 |
---|---|
폴더의 일부 파일 이름 바꾸기 (0) | 2021.01.14 |
비디오에서 물체와의 거리를 어떻게 확인할 수 있습니까? (0) | 2021.01.14 |
C에서 16 진수 문자열을 바이트 배열로 (0) | 2021.01.14 |
jQuery에서 "this"는 무엇을 의미합니까? (0) | 2021.01.14 |