일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 코딩테스트
- algorithm
- windows
- git
- mysql
- Microsoft
- convert
- Github
- File
- string
- chashtag
- tls
- log
- Process
- logging
- WPF
- dotNET
- ListView
- commit
- nullable
- windows10
- csharp
- IValueConverter
- .net
- C#
- Visual Studio
- programmers
- coding-test
- Coding
- Binding
Archives
- Today
- Total
CHashtag
[C#] [NUnit] 작업 경로 (Working Directory) (CurrentDirectory Temp) 본문
반응형
안녕하세요.
저는 요즘 ChromeDriverUpdater 테스트를 위해 nunit을 사용하고 있는데요,
(깨알 라이브러리 홍보)
https://github.com/Hyo-Seong/ChromeDriverUpdater
그러던 도중 테스트 프로젝트의 work 디렉터리, 즉 Enviroment.CurrentDirectory가 "%temp%" 를 보고 있었습니다.
Test 프로젝트의 경로는 다른곳인데 말이죠. ㅠㅠ
아무튼 그래서 working directory를 원래 위치로 변경하는 코드를 알려드리고자 합니다.
코드는 간단합니다.
[SetUpFixture]
public class MySetUpClass
{
[OneTimeSetUp]
public void RunBeforeAnyTests()
{
var dir = Path.GetDirectoryName(typeof(MySetUpClass).Assembly.Location);
if (dir != null)
{
Environment.CurrentDirectory = dir;
// or
Environment.CurrentDirectory = TestContext.CurrentContext.TestDirectory;
Directory.SetCurrentDirectory(dir);
}
else
throw new Exception("Path.GetDirectoryName(typeof(MySetUpClass).Assembly.Location) returned null");
}
}
위 코드를 테스트 프로젝트에 넣으면 자동으로 실행이 되고, 경로가 정상적으로 설정된 것을 확인하실 수 있습니다.
위 상황은 오류라고 생각하실 수 있지만 NUnit측에서는 의도된 설계라고 합니다. (아래 링크 참고)
https://github.com/nunit/nunit/issues/1072
아무튼, 이렇게 해결하시면 됩니다 ㅎㅎ
오늘도 게시글 봐주셔서 감사합니다.
도움이 되셨길 바랍니다.
[관련 링크]
반응형
'C#' 카테고리의 다른 글
[Visual Studio 2022] the project doesn't know how to run the profile 해결방법 (0) | 2022.01.09 |
---|---|
[C#] List 원하는 개수만 얻기 (Take, Skip) (0) | 2022.01.07 |
[C#] 실행시간 측정하기 (Stopwatch) (0) | 2021.12.16 |
Visual Studio에서 솔루션 내 프로젝트 동시 실행(debug multiple project) (0) | 2021.11.13 |
[C#] 압축, 압축 풀기 with 비밀번호 (zip, unzip with password) (0) | 2021.09.29 |