2016-04-27 10 views
0

Ich habe ein paar Projekte in Visual Studio Team Services: eine für serverseitigen Code und eine weitere für die javascript-reiche Benutzeroberfläche. Ich versuche jetzt, ein Dashboard für das Team einzurichten, um Dinge wie den Buildstatus und die Testabdeckung zu sehen, und kann nicht herausfinden, wie die Daten aus den Visual Studio Team Services abgerufen werden können oder ob dies möglich ist.Wie kann ich Testergebnisse von Visual Studio Team Services exportieren?

Ich habe versucht, einen Service-Hook für das Projekt zu erstellen und einen neuen WebHook-Abonnenten anzuhängen. Dann wird ein JSON-Objekt in meinem Dashboard angezeigt, das alle Informationen enthält, die ich senden kann. Hier ist ein Beispiel aus der „Test“ -Taste, wenn die Webhook Einrichtung:

{ 
    "subscriptionId": "2d0988c2-e1a6-45b7-ada0-cf3355beeb9f", 
    "notificationId": 4, 
    "id": "4a5d99d6-1c75-4e53-91b9-ee80057d4ce3", 
    "eventType": "build.complete", 
    "publisherId": "tfs", 
    "message": { 
     "text": "Build ConsumerAddressModule_20150407.2 succeeded", 
     "html": "Build <a href=\"https://fabrikam-fiber-inc.visualstudio.com/web/build.aspx?pcguid=5023c10b-bef3-41c3-bf53-686c4e34ee9e&amp;builduri=vstfs%3a%2f%2f%2fBuild%2fBuild%2f3\">ConsumerAddressModule_20150407.2</a> succeeded", 
     "markdown": "Build [ConsumerAddressModule_20150407.2](https://fabrikam-fiber-inc.visualstudio.com/web/build.aspx?pcguid=5023c10b-bef3-41c3-bf53-686c4e34ee9e&builduri=vstfs%3a%2f%2f%2fBuild%2fBuild%2f3) succeeded" 
    }, 
    "detailedMessage": { 
     "text": "Build ConsumerAddressModule_20150407.2 succeeded", 
     "html": "Build <a href=\"https://fabrikam-fiber-inc.visualstudio.com/web/build.aspx?pcguid=5023c10b-bef3-41c3-bf53-686c4e34ee9e&amp;builduri=vstfs%3a%2f%2f%2fBuild%2fBuild%2f3\">ConsumerAddressModule_20150407.2</a> succeeded", 
     "markdown": "Build [ConsumerAddressModule_20150407.2](https://fabrikam-fiber-inc.visualstudio.com/web/build.aspx?pcguid=5023c10b-bef3-41c3-bf53-686c4e34ee9e&builduri=vstfs%3a%2f%2f%2fBuild%2fBuild%2f3) succeeded" 
    }, 
    "resource": { 
     "uri": "vstfs:///Build/Build/2", 
     "id": 2, 
     "buildNumber": "ConsumerAddressModule_20150407.1", 
     "url": "https://fabrikam-fiber-inc.visualstudio.com/DefaultCollection/71777fbc-1cf2-4bd1-9540-128c1c71f766/_apis/build/Builds/2", 
     "startTime": "2015-04-07T18:04:06.83Z", 
     "finishTime": "2015-04-07T18:06:10.69Z", 
     "reason": "manual", 
     "status": "succeeded", 
     "dropLocation": "#/3/drop", 
     "drop": { 
      "location": "#/3/drop", 
      "type": "container", 
      "url": "https://fabrikam-fiber-inc.visualstudio.com/DefaultCollection/_apis/resources/Containers/3/drop", 
      "downloadUrl": "https://fabrikam-fiber-inc.visualstudio.com/DefaultCollection/_apis/resources/Containers/3/drop?api-version=1.0&$format=zip&downloadFileName=ConsumerAddressModule_20150407.1_drop" 
     }, 
     "log": { 
      "type": "container", 
      "url": "https://fabrikam-fiber-inc.visualstudio.com/DefaultCollection/_apis/resources/Containers/3/logs", 
      "downloadUrl": "https://fabrikam-fiber-inc.visualstudio.com/_apis/resources/Containers/3/logs?api-version=1.0&$format=zip&downloadFileName=ConsumerAddressModule_20150407.1_logs" 
     }, 
     "sourceGetVersion": "LG:refs/heads/master:600c52d2d5b655caa111abfd863e5a9bd304bb0e", 
     "lastChangedBy": { 
      "id": "d6245f20-2af8-44f4-9451-8107cb2767db", 
      "displayName": "Normal Paulk", 
      "uniqueName": "[email protected]", 
      "url": "https://fabrikam-fiber-inc.visualstudio.com/_apis/Identities/d6245f20-2af8-44f4-9451-8107cb2767db", 
      "imageUrl": "https://fabrikam-fiber-inc.visualstudio.com/DefaultCollection/_api/_common/identityImage?id=d6245f20-2af8-44f4-9451-8107cb2767db" 
     }, 
     "retainIndefinitely": false, 
     "hasDiagnostics": true, 
     "definition": { 
      "batchSize": 1, 
      "triggerType": "none", 
      "definitionType": "xaml", 
      "id": 2, 
      "name": "ConsumerAddressModule", 
      "url": "https://fabrikam-fiber-inc.visualstudio.com/DefaultCollection/71777fbc-1cf2-4bd1-9540-128c1c71f766/_apis/build/Definitions/2" 
     }, 
     "queue": { 
      "queueType": "buildController", 
      "id": 4, 
      "name": "Hosted Build Controller", 
      "url": "https://fabrikam-fiber-inc.visualstudio.com/DefaultCollection/_apis/build/Queues/4" 
     }, 
     "requests": [{ 
      "id": 1, 
      "url": "https://fabrikam-fiber-inc.visualstudio.com/DefaultCollection/71777fbc-1cf2-4bd1-9540-128c1c71f766/_apis/build/Requests/1", 
      "requestedFor": { 
       "id": "d6245f20-2af8-44f4-9451-8107cb2767db", 
       "displayName": "Normal Paulk", 
       "uniqueName": "[email protected]", 
       "url": "https://fabrikam-fiber-inc.visualstudio.com/_apis/Identities/d6245f20-2af8-44f4-9451-8107cb2767db", 
       "imageUrl": "https://fabrikam-fiber-inc.visualstudio.com/DefaultCollection/_api/_common/identityImage?id=d6245f20-2af8-44f4-9451-8107cb2767db" 
      } 
     }] 
    }, 
    "resourceVersion": "1.0", 
    "resourceContainers": { 
     "collection": { 
      "id": "c12d0eb8-e382-443b-9f9c-c52cba5014c2" 
     }, 
     "account": { 
      "id": "f844ec47-a9db-4511-8281-8b63f4eaf94e" 
     }, 
     "project": { 
      "id": "be9b3917-87e6-42a4-a549-2bc06a7a878f" 
     } 
    }, 
    "createdDate": "2016-04-27T14:45:20.8150184Z" 
} 

Es gibt ein paar nützlichen Felder hier in der resource Eigenschaft, wie status, startTime und finishTime (von denen kann ich herausfinden, wie Lange dauerte der Build). Aber an den Tests gibt es nichts.

In meinem UI-Projekt verfügen die Tests und der Bericht über einen Veröffentlichungsschritt, der die Ergebnisse in einer XML-Datei auf dem Buildserver speichert. Daher kann ich im Moment nur so detaillierte Informationen mit dem Dashboard teilen, indem ich ein benutzerdefiniertes Skript schreibe, das diese XML-Dateien liest und als letzten Schritt des Builds an eine REST-API sendet.

Wenn jemand von einem saubereren Weg weiß, VSTS zu tun, was ich brauche, bin ich ganz Ohr.

Antwort

0

Die gewünschten Informationen werden in "TestRuns" gespeichert. Wenn Sie einen Service-Hook für das Ereignis "Build Completed" erstellen, werden nur die im Build enthaltenen Informationen gesendet. Daher sind keine Testinformationen enthalten. Sie können jedoch ein Skript schreiben, um die zugehörigen Testlaufinformationen mit den "builduri" Informationen in Service-Hooks über VSTS Rest Api zu erhalten. enter image description here

Verwandte Themen