2010-04-21 13 views
5

Tôi gặp phải một vấn đề lạ. Trong bài kiểm tra đơn vị của tôi, tôi muốn kiểm tra các chuỗi đã bản địa hóa. Tuy nhiên, tôi không thể làm cho nó hoạt động được. Ví dụ: tôi đã tạo hai tài nguyên: Resource1.resx cho tiếng Anh và Resource1.zh-CN.resx cho tiếng Trung. Dự án thử nghiệm đơn vị chỉ có thể nhận được chuỗi tài nguyên tiếng Anh (mặc định?). Đây là mã Tôi đang sử dụng:Dự án MSTest không thể nhận chuỗi được bản địa hóa?

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")); 

Tôi tạo ra một dự án thường xuyên (có nghĩa là không phải là một dự án MSTest) để đảm bảo các dây cục bộ đang làm việc. Vì vậy, nó hoạt động trong một dự án thông thường, nhưng không phải trong một dự án MSTest.

Nó không giúp ngay cả khi tôi đặt đoạn mã sau để làm cho 'zh-CN' như nền văn hóa hiện tại của đơn vị kiểm tra:

[TestInitialize()] 
public void MyTestInitialize() 
{ 
    Thread.CurrentThread.CurrentCulture = new CultureInfo("zh-CN"); 
    Thread.CurrentThread.CurrentUICulture = new CultureInfo("zh-CN"); 
} 

Bất kỳ ai đã nhìn thấy vấn đề tương tự? Có bất kỳ công việc xung quanh?

Trả lời

10

Bạn không cần sử dụng DeploymentItem để đảm bảo rằng DLL nội địa hóa nằm trong thư mục kiểm tra?

[TestMethod()] 
[DeploymentItem(@"bin\Debug\fr\Proj.resources.dll", "fr-CA")] 
public void TestDialogLocalization(){ 
// blah 
} 
+0

Ồ, tuyệt. Đó là cách chữa trị! Cảm ơn một triệu! Thật thú vị mặc dù ... resource.dll đã được sao chép để kiểm tra thư mục của dự án tương ứng. Việc thêm thuộc tính này không sao chép lại tệp (từ dấu thời gian). Tuy nhiên, không có thuộc tính này, nó không hoạt động. – miliu

+0

hahah phấn khác để sự điên rồ của mstest lol –

+0

Nice bắt. Tôi muốn đặt nó ở trên cùng của phương pháp thử nghiệm của tôi với '[DeploymentItem]' để sanity kiểm tra sao chép tệp của tôi: 'Assert.IsTrue (File.Exists (@" nl \ Project.resources.dll ")," Không tìm thấy tệp ");" – tomfanning

Các vấn đề liên quan