2

Я хочу иметь библиотеку классов ресурсов и протестировать ее в другом классе класса mestest. это мой project.json в библиотеке ресурсов: (мой Resx файл находится в папке Resources)Есть ли способ выполнить тестирование ресурсов локализации в базовом классе asp.net libarary?

{ 
    "version": "1.0.0-*", 
    "dependencies": { 
    "NETStandard.Library": "1.6.0", 
    "Microsoft.AspNetCore.Mvc.DataAnnotations": "1.0.1" 
}, 
"buildOptions": { 
    "embed": { 
    "include": [ "Resources/PS.ModelBase.Models.Person.fa.resx" ] 
    } 
}, 
"frameworks": { 
    "netstandard1.6": { 
    "imports": "dnxcore50" 
    } 
} 
    } 

и это мой метод испытания:

using Microsoft.VisualStudio.TestTools.UnitTesting; 
using System; 
using System.Collections; 
using System.Collections.Generic; 
using System.IO; 
using System.Linq; 
using System.Resources; 
using System.Threading.Tasks; 

namespace PS.ModelBaseTest 
{ 
[TestClass] 
public class PersonTest 
{ 
    [TestMethod] 
    public void FullNameValidateNullFirstName() 
    { 
     ResourceManager rm = new ResourceManager(typeof(PS.ModelBase.Models.Person)); 
     string test = rm.GetString("Fisrt Name", new System.Globalization.CultureInfo("fa-IR")); 
     Assert.AreEqual("Fisrt Name", test); 

    } 
    } 
} 

Я имею эту ошибку, когда я запускаю тест :

Не удалось найти ресурсы, подходящие для указанной культуры, или нейтральная культура. Убедитесь, что «PS.ModelBase.Models.Person.resources» был правильно встроен или подключен к сборке «PS.ModelBase» по адресу времени компиляции или что все необходимые спутниковые сборки - это , загружаемые и полностью подписанные.

Что мне делать?

Update:

Ok. Я решил проблему, вставив resx в папку «Модели» (там, где находится класс Person), и переименовал файлы resx в имя класса (например, Person.en.resx). ничего не делать с project.json:

{ 
    "dependencies": { 
    "NETStandard.Library": "1.6.0", 
    "Microsoft.AspNetCore.Mvc.DataAnnotations": "1.0.1" 
}, 
    "frameworks": { 
    "netstandard1.6": { 
    "imports": "dnxcore50" 
} 
}, 
"version": "1.0.0-*" 
} 

Но я столкнулся с другой проблемой .Я хочу остаться мои Resx файлы в папке ресурсов, а не в папке Models! Как вставить файл resx в класс пользователя, когда он находится в папке «Ресурсы»?

У меня есть вторая проблема. На самом деле файл ресурсов и класс должен быть в том же домене

+0

Try ' "включают в себя": [ "Ресурсы"]' или ' "includeFiles": [«Ресурсы/PS.ModelBase.Models.Person .fa.resx "]' – Nkosi

+0

Я сделал два из них, но снова получил ту же ошибку !!! –

+0

вопрос об обновлении с содержанием project.json – Nkosi

ответ

1

Используя следующие два ресурса в качестве ссылки:

Github Issue: Updates to project.json schema

project.json reference

на основе файла проекта в вопросе, либо попробовать

  • "includeFiles" string/string []
    Список путей к файлу для включения. Пути внедрены в папку проекта. Этот список имеет более высокий приоритет , чем include, и исключает шаблоны глобусов, поэтому файл , указанный здесь, и в шаблоне исключающего глобуса по-прежнему будет включать . По умолчанию нет.
"buildOptions": { 
    "embed": { 
    "includeFiles": [ "Resources/PS.ModelBase.Models.Person.fa.resx" ] 
    } 
} 

для всего файла один ресурс, или

  • "включают" строка/строка []
    Список шаблонов файлов подстановку для файлов включить , Узоры внедрены в папку проекта. По умолчанию нет.
"buildOptions": { 
    "embed": { 
    "include": [ "Resources" ] 
    } 
} 

для содержимого папки Resources

+0

Я сделал два из них, но снова получил ту же ошибку !!! –