Visual Studio を使用しているローカル マシンではテストが成功しているが、CI ビルドが TFS サーバーでテストを実行すると失敗するという問題が発生しています。
失敗している行と、コンテキストの前の行を次に示します。
var mockEventRepository = Substitute.For<IEventRepository>();
mockEventRepository.GetAll().ReturnsForAnyArgs(r => new List<Event>().AsQueryable());
ARGUMENT MATCHERSがないことに注意してください。テスト全体で1つもありません。
TFS は次のエラーを返します。
NSubstitute.Exceptions.UnexpectedArgumentMatcherException : 引数マッチャー (Arg.Is、Arg.Any) は、メンバー引数の代わりにのみ使用する必要があります。Returns() ステートメントや、メンバー呼び出し以外の場所では使用しないでください。
一言で言えば、エラーは発生しているときは一貫しているように見えますが (同じエラー)、ランダムに発生するか発生しないようにも見えます。
たとえば...元のビルドが失敗した後、後続の同一のビルドをキューに入れた後、成功しました。ただし、その時は、異なるが類似した誤ったエラーで異なる構成で同じビルドを試みたときに失敗しました:
NSubstitute.Exceptions.AmbiguousArgumentsException : 使用する引数の指定を決定できません。
参考までに、TFS 2015 と VS 2015 を使用しています。