У меня есть модульный тест C# mstest, который отлично работает локально, но не работает на сервере сборки. Как я могу заC#

Место общения программистов C#
Ответить
Anonymous
 У меня есть модульный тест C# mstest, который отлично работает локально, но не работает на сервере сборки. Как я могу за

Сообщение Anonymous »

У меня есть следующий модульный тест, который отлично работает локально (упрощенный и анонимный):
[TestMethod]
public void GotoPageCommand_Calls_PCCollection_SearchPage()
{
var page = 100;
var sut = CreateSut();
sut.SearchPage = page;
sut.GotoPageCommand.Execute(null);

_tableViewModel.Verify(s => s.SearchPage(page), Times.Once());
}


Проблема в том, что последняя строка показывает 0 раз на сервере сборки, но правильно показывает 1 раз при локальном запуске (либо отдельно, либо при запуске всех тестов).Очевидно, проблема связана с асинхронным методом.
Это упрощенная версия тестируемого метода (GotoPageCommand, которая затем должна вызывать метод SearchPage ):
в модель просмотра:
public ICommand GotoPageCommand { get; }

. . .
// in the ctor:
GotoPageCommand = new DelegatingCommand(GotoPage, CanGotoPage);

. . .
// the GotoPage method

private async void GotoPage()
{
// lots of stuff...
try
{
await Task.Run(() =>
{
// This is the problem line that correctly verifies as being
// called once when run locally, but shows zero times when
// run on build server.
_pcCollection.PagData.SearchPage(page);
});
}



Подробнее здесь: https://stackoverflow.com/questions/793 ... -the-build
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»