winform xUnit 단위 테스트 중 쿼리를 실행하는 메서드가 실행되지 않아서 삽질 끝에 해결했습니다.
1. Could not load file or assembly 'System.Data.SqlClient' 에러
~.sqlClient~(0.0.0.0) ~ 에러
xUnit 프로젝트에서 sqlClient 어셈블리 참조 시 바로 중단됨
구글링 결과 system.data.sqlClient 어셈블리를 Microsoft.data.sqlClient 으로 변경 후 해결된다 하여 system.data.sqlClient 제거 후 Nuget으로 Microsoft.data.sqlClient로 변경
단위테스트 실행했는데 잘 돌아가나 싶었으나 소수의 테스트만 통과를 못함
디버그 해보니 sqlConnectionstring 에서 예외 발생됨
이미 퇴근시간이 훌쩍 지나 포기하려 했으나 날린 시간이 아까워서 해결하고 가기로 마음먹음
Microsoft.data.sqlClient 로 변경 후 xUnit에서 어셈블리 참조는 되지만
sqlConnectionstring 에서 계속 다른 예외 발생
2. Microsoft.data.sqlClient로 변경 후, DB 연결 에러(신뢰되지 않은 기관에서 인증 체인을 발급했습니다)
혹시나 해서 winform앱을 실행하니 DB인증 에러 발생.
이제는 xUnit도 안되고 winform앱도 DB 연결이 불가능해짐.
그래도 관련 자료가 있어 금방 해결됨
sqlConnectionString에 {server=..~~..~..};TrustServerCertificate=True; 추가하니 DB 인증에러 해결됨
다시 테스트 돌렸으나 1번 해결 후 상황과 같음 xUnit에서는 여전히 안됨
3. xUnit 프로젝트에 Microsoft.data.sqlClient 참조
2번 에러 해결 후 1번 에러에서 버전이 4.0.0.0으로 변경되고
똑같이 sqlConnectionString에서 예외 발생됨
(tryExecption ~ 이런걸로 내용이 조금 바뀌어 있었는데 기억하기 싫음)
단위 테스트 프로젝트에도 1번에서와 같이 Nuget으로 Microsoft.data.sqlClient 설치 후 해결
결론
1. system.data.sqlClient 제거
2. 어플리케이션, 단위테스트 프로젝트에 각각 Microsoft.data.sqlClient 설치
3. DB 인증 에러 발생시 TrustServerCertificate=True 추가
Microsoft.data.sqlClient 로 변경 후 다른 문제 있으면 추가로 업데이트 예정.
'C#' 카테고리의 다른 글
C# Winform 반짝이는 버튼 컨트롤 만들기 (0) | 2021.12.19 |
---|---|
c# Devexpress gridcontrol 특정 셀 버튼 표시 방법 (0) | 2021.12.19 |
C# 폴더 파일 구분 (0) | 2021.04.13 |
c# 숨김 폴더(디렉토리) 체크 방법 (0) | 2021.04.13 |
C# Ionic zip 압축 및 압축해제 프로그레스바 구현(feat.한글) (0) | 2021.03.25 |