Halten Sie die Arbeit an, reparieren Sie einen Fehler und leiten Sie eine Codeüberprüfung
Eine leistungsstarke Methode, um per Mausklick den Arbeitskontext von einem Arbeitsthread in einen anderen umzuschalten, ist in Visual Studio Premium und Visual Studio Ultimate mit Team Foundation Server verfügbar. Außerdem können Teammitglieder leicht Nachrichten über vorgeschlagene Änderungen am Code austauschen. In diesem Thema werden diese Funktionen erläutert. Damit wird ein Lernprogramm fortgesetzt, in dem die Mitglieder eines fiktiven, aktiven Teams im Laufe eines Tages verfolgt werden.
Peter war damit beschäftigt, Code für die Erfüllung einer Aufgabe für Backlogelemente zu schreiben. Allerdings haben seine Kollegen einen Fehler gefunden, der sie blockiert. Peter möchten den Fehler sofort beheben. Er unterbricht seine Arbeit und behebt den Fehler. Es bittet Julia, den Fehler zu überprüfen. Nach der Überprüfung prüft er die Lösung und arbeitet weiter an der ursprünglichen Aufgabe.
Hinweis
Die Funktionen "Meine Arbeit" und "Codeüberprüfung", die Peter verwendet, sind nur in Visual Studio Premium und Visual Studio Ultimate verfügbar.
In diesem Thema
Unterbrechen der aktuellen Arbeit und Starten der Arbeit an einem Fehler
Untersuchen des Fehlers
Anfordern einer Codeüberprüfung
Übernehmen und Durchführen (oder Ablehnen) einer Codeüberprüfung
Empfangen und Reagieren auf eine Codeüberprüfung
Korrigieren des Tests und des Codes
Einchecken der Lösung
Fortsetzen der Arbeit an einer Aufgabe
Unterbrechen der aktuellen Arbeit
Während Peter an einem Backlogelement arbeitet, möchte Julia einen Fehler besprechen, durch den sie blockiert wird. Der Fehler liegt in einem Bereich, mit dem Peter vertraut ist. Daher erstellt eine Aufgabe zur Fehlerbehebung und weist sich diese Aufgabe selbst zu. Er entscheidet, sofort mit der Arbeit an der Lösung zu beginnen.
Bevor er beginnt, am neuen Fehler zu arbeiten, möchte Peter überprüfen, ob sich seine aktuelle Arbeit an einem sicheren Ort auf dem Server des Teams befindet. Auf der Seite Meine Arbeit wählt Peter Unterbrechen, um zu speichern (in Team Foundation Server):
Die gesamte Arbeit, die er erledigt hat, einschließlich Änderungen am Code, an Tests und anderen Dateien.
Geöffnete Projektmappen, Fenster, Haltepunkte, Überwachungsfenstervariablen und andere Teile im Visual Studio-Zustand.
Wenn sein Arbeitsbereich bereinigt ist, zieht Peter die neue Aufgabe aus Verfügbare Arbeitsaufgaben in "In Bearbeitung" befindliche Arbeit. Es ist bereit, den Fehler zu untersuchen und eine Lösung zu schreiben.
Hinweis
Der Arbeitskontext ist mit Arbeitsaufgaben verknüpft, die im Zustand "In Bearbeitung" auf der Seite "Meine Arbeit" angezeigt werden.Mit Unterbrechen und Fortsetzen können Sie schnell zwischen unterschiedlichen Aufgaben wechseln.Die geöffneten Projektmappen und Dateien, Codeänderungen und Visual Studio-Layouts werden zusammen umgeschaltet.
So unterbrechen Sie die aktuelle Arbeit und beginnen mit einer anderen Aufgabe
**Verbindung herstellen.**Wenn Sie nicht bereits über eine Verbindung mit dem Teamprojekt verfügen, in dem Sie arbeiten möchten, stellen Sie eine Verbindung mit dem Teamprojekt her:
- Wählen Sie in Team Explorer die Option Startseite und dann Meine Arbeit aus.
Unterbrechen der aktuellen Aufgabe:
Im Abschnitt "In Bearbeitung" befindliche Arbeit wählen Sie Unterbrechen aus.
Im angezeigten Feld geben Sie den Namen ein, den Sie diesem Satz unterbrochenen Aufgaben geben möchten, und wählen Sie anschließend die Schaltfläche Unterbrechen aus. Der Standardname ist die in Bearbeitung befindliche Arbeitsaufgabe.
Beginnen Sie mit der Arbeit an der neuen Aufgabe, am Fehler oder an einer anderen Arbeitsaufgabe:
Bevor Sie eine Arbeitsaufgabe ausgewählt haben, sollten Sie Folgendes beachten:
Erstellen Sie eine neue Aufgabe oder andere Arbeitsaufgabe, indem Sie unter Verfügbare ArbeitsaufgabenNeu auswählen, oder
Wählen Sie eine andere Abfrage unter Verfügbare Arbeitsaufgaben aus.
Ziehen Sie eine Arbeitsaufgabe aus Verfügbare Arbeitsaufgaben in "In Bearbeitung" befindliche Arbeit.
Alternativ können Sie zu einer Arbeitsaufgabe wechseln, die Sie zuvor unterbrochen haben, indem Sie sie unter Angehaltene Arbeit ziehen.
Tipp
Die ausgeführten Arbeitsaufgaben werden mit den aktuellen Codeänderungen und dem Visual Studio-Zustand verknüpft.Damit Sie mit Visual Studio die Arbeit organisieren können, müssen Sie sicherstellen, dass die entsprechenden Elemente im Zustand "In Bearbeitung" sind, wenn Sie von einer Aufgabe zu einer anderen wechseln.
Untersuchen des Fehlers
Peter öffnet und liest die Arbeitsaufgabe zur Fehlerbehebung. Gemäß der Beschreibung, die von einem Mitglied des Testteams geschrieben wurde, wird eine bezahlte Rechnung manchmal fälschlicherweise aus unbezahlt gekennzeichnet. Es gibt eine Lab-Umgebungsmomentaufnahme, die der Arbeitsaufgabe zur Fehlerbehebung angefügt wurde. Peter kann die virtuellen Computer starten, auf denen der Test ausgeführt wurde, die falsche Rechnung erkennen und die Schritte im IntelliTrace-Protokolls zurückverfolgen. Er verfolgt den Fehler nach der folgenden Methode:
public class LocalMath
{
public static bool EqualTo(double a, double b)
{
return a == b;
}
Im IntelliTrace-Protokoll erkennt Peter, dass die Methode "false" zurückgibt, da die Parameter sich in einem sehr geringen Betrag unterscheiden. Peter weiß, dass Rundungsfehler dieser Art in der Gleitkommaarithmetik unvermeidlich sind und dass es nicht üblich ist, Gleitkommazahlen auf Gleichheit zu testen.
Erweitern der Tests, um den Fehler anzuzeigen
Wenn ein Fehler gefunden wird, zeigt dies, dass eine Lücke in Komponententests vorliegt oder dass der Test nicht mit den tatsächlichen Anforderungen der Benutzer übereinstimmt. Daher fügt Peter vor der Behebung des Fehlers einen Test hinzu, mit dem das Vorhandensein dieses Fehlers gezeigt wird.
// Added 2012-02-02 for bug 654321:
/// <summary>
/// Make sure that number equality test allows for
/// small rounding errors.
/// </summary>
[TestMethod]
public void TestDoublesEqual()
{
// We allow a rounding error of 1 in 1000000:
TestEqual(1, 1e-7, true); // Less than allowed error
TestEqual(1, 1e-5, false); // More than allowed error
TestEqual(1000, 1e-7, true); // Less than allowed error
TestEqual(1000, 1e-5, false); // More than allowed error
}
private void TestEqual(double value, double error, bool result)
{
// Try different combinations of error and value:
Assert.IsTrue(result == LocalMath.EqualTo(value + error, value));
Assert.IsTrue(result == LocalMath.EqualTo(value, value + error));
Assert.IsTrue(result == LocalMath.EqualTo(value - error, value));
Assert.IsTrue(result == LocalMath.EqualTo(value, value - error));
}
Es führt den Test aus, der wie erwartet fehlschlägt.
Erfolgreiche Ausführung des Tests
Peter korrigiert den Code:
public static bool EqualTo(double a, double b)
{
// Allow for rounding errors.
// For example, a == 2.0 and b = 1.99999999999
const double allowedError = 1/1000000;
return System.Math.Abs(a - b) < allowedError;
}
Die Test wird nun erfolgreich ausgeführt.
Anfordern einer Codeüberprüfung
Peter ist mit Lösung für den Fehler zufrieden, doch er checkt die Arbeit noch nicht ein. Das Team verwendet Codeüberprüfungen, um die Gesamtcodequalität zu erhöhen und das Risiko der Erstellung weiterer Fehler zu verringern. Daher verwendet Peter Team Explorer, um von den Teammitgliedern Julia und Adam eine Codeüberprüfung anzufordern.
So fordern Sie eine Codeüberprüfung an
Wählen Sie in Team Explorer auf der Seite Meine Arbeit den Eintrag Überprüfung anfordern aus.
Die Seite Neue Codeüberprüfung wird angezeigt.
Geben Sie mindestens einen Bearbeiter an.
Geben Sie den Namen der Überprüfung an.
Geben Sie den Bereichspfad an.
Geben Sie einen Kommentar an die Bearbeiter an.
Wählen Sie Anforderung übertragen aus.
Die Bearbeiter werden per E-Mail über die Anforderung benachrichtigt.
Sie können auch eine Codeüberprüfung für unterbrochene Arbeit, ein Shelveset oder ein Changeset anfordern. Um eine Liste von Changesets anzuzeigen, öffnen Sie Quellcodeverwaltungs-Explorer, und wählen Sie die Schaltfläche Verlauf aus.
Übernehmen oder Ablehnen einer Codeüberprüfung
Julia empfängt der Codeüberprüfungsanforderung und akzeptiert sie. Sie überprüft den Code, schreibt einige Kommentare auf den Datei- und Codeblockebenen und sendet dann die Codeüberprüfung an Peter zurück. Adam ist zu sehr ausgelastet, um den Code zu überprüfen, und lehnt die Anforderung ab.
In den Kommentaren unterstreicht Julia, dass der Test falsch ist. Der zulässige Fehler sollte ein angegebener Bruchteil der Eingabewerte und keine konstante Menge sein. Daher sollte der Test den Fehler mit dem Wert multiplizieren.
// We allow a rounding error of 1 in 1000000
// as a fraction of the value:
TestEqual(1, 1e-7, true); // Less than allowed error
TestEqual(1, 1e-5, false); // More than allowed error
TestEqual(1000, 1000*1e-7, true); // Less than allowed error
TestEqual(1000, 1000*1e-5, false); // More than allowed error
Tipp
Beachten Sie, dass die Teammitglieder die Tests als Schwerpunkt für Diskussion verwenden.Wenn die Tests richtig und ausreichend sind, ist der Code auch richtig.Anders als der Code stellt jeder Test einen separaten Fall dar.Aus diesem Grund sind häufig die Tests einfacher zu besprechen als der Code.
So führen Sie eine Codeüberprüfung aus
Wechseln Sie in Team Explorer auf der Seite Meine Arbeit zum Abschnitt Meine Codeüberprüfungen & Anforderungen und öffnen Sie die Anforderung.
Auf der Seite Codeüberprüfung haben Sie folgende Möglichkeiten:
Wählen Sie Ablehnen oder Annehmen, um den Autor darüber zu benachrichtigen, ob Sie die Überprüfung durchführen.
Wählen Sie Bearbeiter hinzufügen aus, um der Codeüberprüfungsanforderung weitere Bearbeiter hinzuzufügen.
Zeigen Sie die Änderungen an jeder Datei an, die für diese Arbeitsaufgabe aktualisiert wurde.
Erweitern Sie Kommentare, um die Änderungen mit dem Autor und anderen Bearbeitern zu erörtern.
Wählen Sie Zusammenfassenden Kommentar hinzufügen aus.
- oder -
Wählen Sie einen Codeblock und dann im Kontextmenü Kommentar hinzufügen aus.
- Wählen Sie Kommentare senden aus, um Ihre Beiträge für den Autor und andere Bearbeiter sichtbar zu machen.
Wählen Sie Senden & Fertig stellen aus, um die Überprüfung abzuschließen und anzugeben, ob für den Code mehr Arbeit erforderlich ist.
Reagieren auf die Codeüberprüfung
Peter empfängt und reagiert auf die Codeüberprüfung von Julia.
So reagieren Sie auf die Codeüberprüfung
Die Bearbeiter und der Autor des Codes können in beliebiger Häufigkeit Kommentare austauschen. Die Überprüfung ist beendet, sobald der Autor sie schließt. Über jeden Beitrag zur Diskussion werden die anderen Teilnehmer per E-Mail benachrichtigt.
Wechseln Sie in Team Explorer auf der Seite Meine Arbeit zum Abschnitt Meine Codeüberprüfungen & Anforderung und doppelklicken Sie auf die Anforderung.
Sie können auch das Kontextmenü für die Anforderung öffnen und Öffnen auswählen.
Lesen Sie die Kommentare, und beantworten Sie diese nach Bedarf. Um auf einen Kommentar zu antworten, wählen Sie Antworten aus, geben Sie den Kommentar im angezeigten Feld ein, und wählen Sie dann OK aus. Um Ihre Kommentare zu senden, wählen Sie Kommentare senden aus.
Um eine Datei anzuzeigen und die Codeblöcke mit Kommentaren anzuzeigen oder um eine Datei zu bearbeiten, wechseln Sie in den Abschnitt Kommentare. Öffnen Sie im Unterabschnitt Dateien das Kontextmenü für die Datei, und wählen Sie entweder Vergleichen (schreibgeschützt) oder Datei bearbeiten aus.
Wenn Sie und die anderen Bearbeiter nicht mehr auf die jeweiligen Kommentare antworten und Sie die Überprüfung schließen möchten, klicken Sie auf Prüfung schließen, und wählen Sie dann aus folgenden Möglichkeiten aus:
Vollständig, um anzugeben, dass die Überprüfung abgeschlossen ist.
– oder –
Abbrechen, um anzugeben, dass Sie die Überprüfung abbrechen.
Korrigieren des Tests und des Codes
Peter hat die Kommentare von Julia gelesen und korrigiert den Komponententest nach ihrem Vorschlag. Der Test schlägt jetzt fehl. Dies zeigt, dass der Code noch nicht korrekt ist.
Peter korrigiert den Code:
/// <summary>
/// Returns true if two numbers are equal.
/// </summary>
public static bool EqualTo(double a, double b)
{
// Allow for rounding errors.
const double allowedErrorMultiple = 1/1000000;
double allowedError = (System.Math.Abs(a) + System.Math.Abs(b)) * allowedErrorMultiple/2;
return System.Math.Abs(a - b) < allowedError;
}
Der Test wird erneut erfolgreich ausgeführt:
Tipp
Um einen Fehler zu beheben, führen Sie die gleichen Verfahren wie in der Codeentwicklung durch.Schreiben Sie einen Test, der fehlschlägt, und sorgen Sie anschließend dafür, dass der Test erfolgreich ausgeführt wird.Checken Sie den Code und die Tests nur ein, wenn die Tests bestanden werden.
Peter wendet jetzt seine Aufmerksamkeit dem Testfall zu, in dem der Fehler gefunden wurde. Die Schritte zur Reproduktion des Fehlers sind eindeutig in der Arbeitsaufgabe beschrieben. Es folgt den Schritten und erkennt, dass die Rechnungen ordnungsgemäß aufgelistet werden.
Einchecken der Lösung
Peter checkt den Code mit dem behobenen Fehler und die Komponententests ein. Der Zustand des Fehlers wird automatisch auf Gelöst festgelegt, und der Wert Zugewiesen zu wird automatisch neu dem Mitglied des Testteams zugewiesen, das den Fehler ermittelt hat. Dieses Teammitglied überprüft, ob der Fehler korrigiert wurde, und schließt die Arbeitsaufgabe.
So checken Sie die Lösung ein
Wählen Sie in Team Explorer auf der Seite Meine Arbeit die Option Einchecken aus.
Überprüfen Sie den Inhalt der Seite Ausstehende Änderungen auf folgende Kriterien:
Alle relevanten Änderungen werden unter Eingeschlossene Änderungen aufgeführt
Alle relevanten Arbeitsaufgaben werden unter Verknüpfte Arbeitsaufgaben aufgeführt.
Geben Sie einen Kommentar ein. So vermitteln Sie den Teammitgliedern den Zweck der vorgenommenen Änderungen, wenn sie sich den Versionskontrollverlauf der geänderten Dateien und Ordner ansehen.
Wählen Sie Einchecken aus.
Fortsetzen der Arbeit an einer Aufgabe
Peter fasst die Arbeit an der Aufgabe zusammen. Er kann schnell weiterarbeiten, da alle Codeänderungen zusammen mit den wichtigen Zustandsbits, wie geöffneten Fenstern, Haltepunkte und Überwachungsfenstervariablen in seinem Arbeitsbereich wiederhergestellt werden.
So setzen Sie die Arbeit an einer Aufgabe fort
Suchen Sie in Team Explorer auf der Seite Meine Arbeit die Liste Angehalten & Abgelegte Arbeit. Öffnen Sie das Kontextmenü für das Element. Sie haben zwei Möglichkeiten:
Wenn Sie die angehaltene Arbeit fortsetzen und alle ausstehenden Änderungen im Arbeitsbereich automatisch unterbrechen möchten, wählen Sie Fortsetzen aus.
Wenn Sie die angehaltene Arbeit mit ausstehenden Änderungen bereits im Arbeitsbereich zusammenführen möchten, wählen Sie Mit "In Bearbeitung" zusammenführen aus.
Fortsetzen der Arbeit
Wenn Sie die Arbeit fortsetzen, stellt Visual Studio Folgendes wieder her:
Die geöffnete Lösung
Die Codeänderungen
Den Zustand und die Position eines geöffneten Fenstern
Haltepunkte
Überwachungsfenstervariablen und -ausdrücke
Lesezeichen
Überprüfung, ob der Bug beseitigt ist
Wenn der Bug vom Testteam gefunden wurde, hat das Team einige Testfälle mit dem Bug verknüpft, die erneut durchgeführt werden. Weitere Informationen.