Ninject ActivationException: Fehler beim Aktivieren von IAlertManagement

8

Ich erhalte den folgenden Fehler:

%Vor%

Hier ist der Testfall, der diese Ausnahme verursacht:

%Vor%

Der obige Fehler tritt in einem meiner Komponententests auf unserem Build-Server auf, nicht jedoch auf meinem Entwicklungscomputer. Ich habe 7 andere Tests, die fast identisch mit denen sind, die auf dem Build-Server und auf meinem Entwicklungscomputer übergeben , aber dies ist der einzige Test, der fehlschlägt.

Die IAlertManagement-Schnittstelle stammt von einer DLL namens Core und der konkrete Typ kommt von einer anderen DLL namens AlertManagement . Ich habe sowohl die DLL Core als auch die DLL AlertManagement , die in meinem Komponententestprojekt als Projektreferenzen enthalten sind. Ich habe 7 oder 8 andere Tests, die mit dieser Situation identisch sind, aber dies ist der einzige Fehler.

Irgendwelche Ideen wären dankbar.

    
Cole W 08.08.2012, 12:13
quelle

3 Antworten

0

Ich habe dies gelöst, indem ich konkrete Referenzen zu den Auflösungstypen in meinem Unit-Test-Projekt hinzugefügt habe. Das Hinzufügen von Projektreferenzen ist nicht genug. So mache ich das:

%Vor%     
Cole W 29.01.2016, 22:13
quelle
1

Der Fehler tritt auf, weil IAlertManagement nicht mit einer konkreten Klasse verknüpft ist. Versuchen Sie, IAlertManagement manuell zu binden.

%Vor%     
Niyoko Yuliawan 20.09.2012 05:41
quelle
0
  1. Als Erstes würde ich sicherstellen, dass die DLL, die die Implementierung von IAlertManagement enthält, in das richtige Verzeichnis auf dem Build-Server kopiert wird, damit die Tests sie sehen.

  2. Eine andere Sache, die Sie versuchen sollten, wäre, den Kernel-Ladecode in eine ClassInitialize -Funktion anstatt in eine TestInitialize zu verschieben, nur um zu sehen, ob es irgendeine Art von Race Condition oder etwas Ähnliches gibt. Ich habe zufällige Fehler auf Build-Servern gesehen, aufgrund von Objekten, die in einer anderen Reihenfolge oder früher als in der normalen Reihenfolge angeordnet wurden (in meinem Fall waren dies Rx, TPL und unbeobachtete Ausnahmen). Es kann sein, dass auf dem Build-Server mehr Tests parallel ausgeführt werden als auf dem Desktop.

  3. Oder es könnte teilweise daran liegen, dass der Server Server-GC . Ich weiß nicht, ob es notwendig wäre, es zu benutzen, um Workstation GC zu benutzen, aber es könnte einen Versuch wert sein.

Austin Thompson 18.09.2012 20:14
quelle