5
이상한 문제가 발생했습니다. 유닛 테스트에서 지역화 된 문자열을 확인하고 싶습니다. 그러나, 나는 그것을 얻는 것처럼 보일 수 없다. 예를 들어 영어 용 Resource1.resx와 중국어 용 Resource1.zh-CN.resx라는 두 가지 리소스를 만들었습니다. 단위 테스트 프로젝트는 영어 리소스 문자열 (기본값?) 만 가져올 수 있습니다. MSTest 프로젝트에서 지역화 된 문자열을 가져올 수 없습니까?
ResourceManager actual = new ResourceManager(typeof(LocaleTest.Properties.Resource1));
string name0 = actual.GetString("Name", new CultureInfo("en-US"));
string name1 = actual.GetString("Name", new CultureInfo("zh-CN"));
내가 다른 일반 프로젝트를 생성 지역화 된 문자열이 작동하는지 확인하기 위해 (안 MSTEST 프로젝트를 의미) : 이것은 내가 사용하고 코드입니다. 따라서 일반 프로젝트에서는 작동하지만 MSTest 프로젝트에서는 작동하지 않습니다.
그것은 내가 단위 테스트의 현재 문화 '에서 zh-CN'를 만들기 위해 다음 코드를 삽입하는 경우에도 도움이되지 않았다
:
[TestInitialize()]
public void MyTestInitialize()
{
Thread.CurrentThread.CurrentCulture = new CultureInfo("zh-CN");
Thread.CurrentThread.CurrentUICulture = new CultureInfo("zh-CN");
}
누구 보았다 유사한 문제? 해결 방법이 있습니까?
오, 훌륭합니다. 그것은 치료법입니다! 백만 달러 주셔서 감사합니다! 흥미 롭습니다 ... resources.dll은 이미 프로젝트 디렉토리에 복사되었습니다. 이 속성을 추가해도 타임 스탬프의 파일은 다시 복사되지 않습니다. 그러나이 특성이 없으면 작동하지 않습니다. – miliu
hahah는 mstest lol의 광기에 또 하나의 분필을 내었다 –
멋진 잡기. 나는 이것을 내 테스트 메소드의 최상단에 올려 놓고 나의 파일 복사를 온전하게 검사하기 위해'[DeploymentItem]'을 넣고 싶다 :'Assert.IsTrue (File.Exists (@ "nl \ Project.resources.dll"), "File not found "); ' – tomfanning