可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
I keep getting this error while using xunit for .NET 1.0 framework net46.
The following constructor parameters did not have matching fixture data
I have seen this post: Collection fixture won't inject and followed the instructions regarding collection fixture closely as described here:
http://xunit.github.io/docs/shared-context.html#collection-fixture
Nothing seems to work.
Any suggestions to what might cause this?
回答1:
In my case it turned out to be a matter of doing it right according to the instructions. By mistake I had annotated the class with
[Collection("ProjectCollection")]
instead of:
[Collection("ActorProjectCollection")]
I must say that the dependency injection mechanism of XUnit would be greatly improved if the error messages gave more explicit hint of what is wrong.
回答2:
Another scenario in which this might fail is if the [CollectionDefinition]
is defined on a type outside the executing test assembly. The attribute itself needs to be defined inside of it or xUnit won't pick it up.
回答3:
This exception may arise when the constructor of your fixture class is failing due to some other problem, in my case connecting to a local Mongo server.
Either look for other failures and solve those first or lighten your constructor up so it does less.
回答4:
It happened to me a couple of times just after adding the Collection
and the CollectionDefinition
decorators and I always arrive to this answer when looking on Internet.
But in my case the problem was just that it seems that a 'Clean Solution' action is needed before testing whether it works or not. Without cleaning the solution I always get a The following constructor parameters did not have matching fixture data
error.
So, I write also this answer in order to help my future self.
Anyway, in order to avoid the problem explained by Nikola Schou, you can always use a constant to avoid name mistmatching:
public static class Collections { public const string ActorProjectCollection= "ActorProjectCollection"; }
-
[Collection(Collections.ActorProjectCollection)] /// ...
-
[CollectionDefinition(Collections.ActorProjectCollection)] /// ...