2009-05-17 4 views
1

Kann jemand erklären, wie man Komponententests von BizTalk-Karten mit mehreren Eingaben zum Funktionieren bringt?BizTalk-Test-Maps mit mehreren Eingabe-XML oder ist es Inline C#, das ist das Problem?

Ich habe die Beispiele mit auf Michael Stephenson blog glücklich war meine Karten zu testen, aber ich habe gerade versucht, meinen ersten mehr Karteneingang und es versagt :-(

ich die VS2005 „Test verwendet habe Karte“, um zunächst eine Eingabeinstanz mit den beiden Eingangsmeldungen zu generieren, dann verwendete Sorten dieser Datei als Testeingänge ...

<ns0:Root xmlns:ns0="http://schemas.microsoft.com/BizTalk/2003/aggschema"> 
    <InputMessagePart_0> 
    ... 
    </InputMessagePart_0> 
    <InputMessagePart_1> 
    ... 
    </InputMessagePart_1> 
</ns0:Root> 

Diese Testmeldungen generieren, die erwartete Ausgabe, wenn ich die VS-Test Karte verwenden, aber ein Abschnitt fehlt, wenn ich die Komponententests versuche.

Das einzige, was ich denken kann, ist die Karte ein paar Funktoiden hat in ... Scripting, Table Extractor und Tabelle Looping ...

Die Unit-Test der StreamingTransform.ScalableTransform ruft ...

// This is the BizTalk Server 2006 way of calling 
mapInstance.StreamingTransform.Transform(inputStream, 
    mapInstance.TransformArgs, outputStream, resolver); 
// This is the R2 way of calling 
XmlReader xmlRdr = new XmlTextReader(inputStream); 
mapInstance.StreamingTransform.ScalableTransform(xmlRdr, 
    mapInstance.TransformArgs, outputStream, 
    resolver, whitespaceCorrect); 

und der alternative Ansatz von den Transform.Transform Verwendung funktioniert auch nicht ...

XPathDocument doc = new XPathDocument(inputStream); 
mapInstance.Transform.Transform(doc, mapInstance.TransformArgs, outputStream); 

Antwort

1

Haben Sie versucht:

mapInstance.Transform.Transform(
    multi-part input message filepath, out put file path); 

Es funktioniert für mich. Ich habe mapInstance als ein Objekt der Klasse Map deklariert (nicht als TestableMapBase deklariert).