c # mstest протестировать метод, который запрашивает базу данных, генерирует исключение FileNotFoundException при чтении конфигурации - PullRequest
0 голосов
/ 07 марта 2019

Я хочу создать тестовый проект и импортировать решение (решение A), чтобы мне не нужно было добавлять тестовый проект в решение. Я хочу отделить тестовый проект от других, потому что я не хочу, чтобы SVN знал, что я его создал.

Когда я тестирую метод, который запрашивает данные из базы данных Entity Framwork. Выдает исключение:

Could not load file or assembly 'System.Configuration.ConfigurationManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=*************'. The system cannot find the file specified.

Но я проверяю Зависимости-> SDK-> Microsoft.NETCore App (2.1), я обнаружил System.Configuration.dll.

Что со мной происходит? Я ищу в переполнении стека и пытаюсь скопировать конфигурацию для тестирования проекта из решения А. Но это не работает.

1 Ответ

0 голосов
/ 13 марта 2019

Я нашел две причины:

  1. Я использую основной проект .net (тестовый проект) для вызова метода в стандартном проекте net Framework.
  2. Всем тестовым проектам необходимо установить ConfigurationManager в Nuget.

===================== ОБНОВИТЬ МОЙ ОТВЕТВЫШЕ =================

Я отказался от использования mstest, чтобы сделать это.

Я нашел другой способ сделать, но, похоже,Немного глупо. Я непосредственно написал метод тестирования в контроллере.

Сначала объявите TestBean.

public TestBean(string name, string suppose, string fact, object msg = null)
{
    this.name = name;
    this.suppose = suppose;
    this.fact = fact;
    pass = suppose == fact;
    if (SHOW_MSG)
        this.msg = msg;
    else
        this.msg = null;
}

Используйте такой компонент в контроллере следующим образом:

[HttpGet]
public string TestAll(){
    JObject obj = (JObject)JsonConvert.DeserializeObject(TestMethod());
    TestBean beans = new TestBean[]{
        new TestBean('TestMethod',true+"",obj+"",obj)
    };
    return JsonConvert.SerializeObject(beans);
}

КогдаЯ захожу на url localhost: ... / TestAll, я получу json

[
    {
        "pass":true,
        "name":"TestMethod",
        "suppose":"True",
        "fact":"True",
        "msg":"True"
    }
]

Честно говоря, его нелегко использовать, особенно когда тестовый пример часто меняется.

...