2017-01-31 3 views
1

Ich habe bereits eine SQL Server DB und Source Control "Redgate" neben dem ich mein Projekt bereits mit Repo Github verbunden und dieses Projekt auch mit Jenkins verbunden.Unit Test in Jenkins

Was ich brauche ist eine Art Unit-Test auf einer der Tabellen zu tun, wie ich bereits die Abfrage und der Test wird Werte an diese Abfrage übergeben, in der Ferne oder eine andere Unit-Test ist.

Aber ich brauche es von Jenkins getan. Gibt es einen möglichen Weg? im Falle von JA hat das etwas mit POWERSHELL?

Ich bin irgendwie verwirrt, weil ich weiß, was ich tun muss, und ich habe die Werkzeuge, aber die Struktur ist nicht klar für mich.

Wo und wie man den Komponententest durchführt und wie man ihn an jeden, den er auf der DB entwickelt, drückt.

Antwort

0

Sie haben eine Handvoll Fragen drüben, lassen Sie mich versuchen, die meisten von ihnen zu adressieren.

  1. würde ich Pester Powershell-Modul verwenden, um einen Test zu erstellen (das ist mit Invoke-SqlCmd), das Ausgangsergebnis zu xml würde, so dass die jenkins sie analysieren kann.
  2. Sie können db Tests in jeder Sprache tun, die Sie mögen, tatsächlich, wie Jenkins ausführen kann, was Sie hineinfüttern, C# -Tests, Python-Tests, Powershell-Tests und so weiter, es ist nur eine Frage der persönlichen Präferenz welche Sprache \ Stack sind wirst du benutzen.
  3. Ich bin mir nicht wirklich sicher, was Sie meinen: "wie man es an jeden, den sie auf der DB entwickeln, drückt".

Dies ist, was ich die Tests mit Powershell zu laufen hatte und jenkins haben verbrauchen sie:

$tests = Invoke-Pester -OutputFormat NUnitXml -OutputFile tests.xml -PassThru 
if ($tests.FailedCount -eq 0) { Remove-AzureRmResourceGroup -ResourceGroupName $rgName -Force } 
1

Unit-Tests in Datenbanken zu tun, ich die tSQLt framework empfehlen würde. Werfen Sie einen Blick auf die quick start guide, um zu sehen, wie man es benutzt.

Wenn Sie bereits eine Lizenz für Redgates SQL Source Control haben, haben Sie möglicherweise auch eine Lizenz für einige ihrer anderen Produkte - sie haben einen namens SQL Test, der die Verwendung von tSQLt in SQL Server Management Studio erheblich erleichtert . Überprüfen Sie, ob Sie auch eine Lizenz für das DLM-Automatisierungsprodukt von Redgate haben - es handelt sich um eine Reihe von Powershell-Cmdlets, die Sie zur Automatisierung der kontinuierlichen Datenbankintegration und -bereitstellung verwenden können, einschließlich der Ausführung eines beliebigen tSQLt Unit-Tests, die vorhanden sind. Glücklicherweise gibt es eine Jenkins-Plugin für sie - https://plugins.jenkins.io/redgate-sql-ci

Es gibt auch einige gute Videos hier, wie es zu benutzen - http://www.red-gate.com/products/dlm/dlm-automation/resources/