Einführung in Tests mit Gemini Code Assist

1. Einführung

In diesem Lab verwenden Sie Gemini Code Assist, einen KI-Assistenten in Google Cloud, um einer vorhandenen Python-Webanwendung Tests hinzuzufügen und Fehler in dieser Anwendung zu finden und zu beheben, die durch die Tests aufgedeckt werden. Anschließend verwenden Sie Code Assist, um Tests für neue Funktionen zu erstellen und Code zu generieren, um diese Tests zu bestehen und die App zu erweitern.

Aufgaben

  • Sie verwenden den Cloud Shell-Editor, um Code für eine vorhandene Webanwendung herunterzuladen.
  • Sie verwenden den Gemini Code Assist-Chat im Cloud Shell-Editor, um allgemeine Fragen zu Google Cloud zu stellen.
  • Sie verwenden Gemini Code Assist Inline-Codeunterstützung im Cloud Shell-Editor, um Tests für die Anwendung zu generieren, die Tests auszuführen, Fehler zu finden und zu beheben und dann die Funktionalität der Anwendung zu erweitern.

Lerninhalte

  • Wie Sie Gemini Code Assist für verschiedene Entwickleraufgaben wie die Test- und Codegenerierung verwenden.
  • Gemini Code Assist verwenden, um mehr über Google Cloud zu erfahren

Voraussetzungen

  • Chrome-Webbrowser
  • Ein Gmail-Konto
  • Ein Cloud-Projekt mit aktivierter Abrechnung
  • Gemini Code Assist für Ihr Cloud-Projekt aktiviert

Dieses Lab richtet sich an Entwickler aller Erfahrungsstufen, auch an Anfänger. Die Beispielanwendung ist zwar in Python geschrieben, aber Sie müssen sich nicht mit der Python-Programmierung auskennen, um zu verstehen, was passiert. Wir konzentrieren uns darauf, die Funktionen von Gemini Code Assist für Entwickler kennenzulernen.

2. Einrichtung

Sie sollten bereits ein Cloud-Projekt mit aktivierter Abrechnung für dieses Lab haben. Wir aktivieren jetzt die Gemini API in unserem Google Cloud-Projekt. Gehen Sie dazu so vor:

  1. Rufen Sie https://console.cloud.google.com auf und achten Sie darauf, dass Sie das Google Cloud-Projekt ausgewählt haben, mit dem Sie in diesem Lab arbeiten möchten. Klicken Sie oben rechts auf das Gemini-Symbol.

GeminiBanner.png

  1. Das Fenster für Gemini für die Cloud Console wird auf der rechten Seite der Console geöffnet. Klicken Sie auf die Schaltfläche Aktivieren, falls sie unten angezeigt wird. Wenn Sie die Schaltfläche Aktivieren nicht sehen, sondern stattdessen eine Chat-Oberfläche, haben Sie Gemini for Cloud bereits für das Projekt aktiviert und können direkt mit dem nächsten Schritt fortfahren.

GeminiApiEnable.png

  1. Nach der Aktivierung können Sie Gemini testen, indem Sie ein oder zwei Anfragen stellen. Es werden einige Beispielanfragen angezeigt, Sie können aber auch etwas wie Was ist Cloud Run? eingeben.

GeminiChatWindow.png

Code Assist antwortet mit der Antwort auf Ihre Frage. Sie können oben rechts auf das Symbol f68286b2b2ea5c0a.png klicken, um das Code Assist-Chatfenster zu schließen.

Gemini im Cloud Shell-Editor aktivieren

Gemini Code Assist ist in mehreren gängigen IDEs verfügbar und verhält sich dort ähnlich. In diesem Codelab verwenden Sie den Google Cloud Shell Editor, der vollständig in Ihrem Webbrowser ausgeführt wird. Sie müssen Gemini im Cloud Shell-Editor aktivieren und konfigurieren. Die entsprechenden Schritte finden Sie unten:

  1. Starten Sie Cloud Shell über das unten gezeigte Symbol. Es kann ein bis zwei Minuten dauern, bis die Cloud Shell-Instanz gestartet wird.

72dc3df7b007fcde.png

  1. Klicken Sie auf die Schaltfläche Editor oder Editor öffnen und warten Sie, bis der Cloud Shell-Editor angezeigt wird. Wenn die Schaltfläche Neuen Editor ausprobieren angezeigt wird, klicken Sie darauf.

CloudShellEditor.png

  1. Klicken Sie unten in der Statusleiste auf die Schaltfläche Cloud Code – Anmelden (siehe Abbildung). Autorisieren Sie das Plug-in wie beschrieben. Wenn in der Statusleiste Cloud Code – kein Projekt angezeigt wird, wählen Sie diese Option aus und wählen Sie dann das Google Cloud-Projekt aus der Liste der Projekte aus, mit denen Sie arbeiten möchten.

CloudCodeSignIn.png

  1. Wenn Sie das Gemini-Symbol nicht in der Statusleiste rechts unten sehen, müssen Sie es in Cloud Code aktivieren. Prüfen Sie vorher, ob Gemini (ehemals Duet AI für Entwickler) in der IDE aktiviert ist. Klicken Sie dazu auf Cloud Code Extension → Settings und geben Sie dann den Text Duet AI: Enable ein, wie unten dargestellt. Achten Sie darauf, dass das Kästchen ausgewählt ist. Laden Sie Ihre IDE neu. Dadurch wird Gemini in Cloud Code aktiviert und die Gemini-Statusleiste wird in Ihrer IDE angezeigt.

EnableDuetAiSetting.png

  1. Klicken Sie rechts unten auf den Button Gemini (siehe Abbildung) und wählen Sie das richtige Google Cloud-Projekt aus, für das wir die Cloud AI Companion API aktiviert haben.

GeminiSelectGoogleCloudProject.png

  1. Nachdem Sie Ihr Google Cloud-Projekt ausgewählt haben, prüfen Sie, ob es in der Cloud Code-Statusmeldung in der Statusleiste angezeigt wird und ob Gemini rechts in der Statusleiste aktiviert ist (siehe unten):

GeminiEnabledStatusBar.png

Gemini Code Assist ist einsatzbereit.

3. Anwendung herunterladen und ansehen

Führen Sie im Terminalfenster den Befehl zum Klonen des Repositorys mit dem Startcode aus und wechseln Sie dann in das neue Verzeichnis. Wenn das Terminalfenster nicht mehr geöffnet ist, klicken Sie auf die Schaltfläche Terminal oder Terminal öffnen, um es wiederherzustellen:

git clone https://github.com/GoogleCloudPlatform/testing-with-duet-ai-codelab.git
cd testing-with-duet-ai-codelab

Öffnen Sie main.py im Editor und dann das Fenster Gemini Chat, indem Sie links im Editor auf das Gemini Chat-Symbol klicken. Dieses Gemini Chat-Fenster befindet sich in der IDE und der Code in der IDE ist als Kontext für die Diskussion verfügbar. Geben Sie den Prompt Erkläre das ein und sehen Sie sich die Antwort an:

GeminiChatExplainThis.png

Sie können in diesem Chatfenster scrollen, um die gesamte Antwort zu sehen. Laut der Erklärung können wir dieses Programm lokal mit dem Befehl python3 main.py im Terminalfenster ausführen.

4. Lokal ausführen

Wechseln Sie bei Bedarf mit cd ~/testing-with-duet-ai-codelab in das Repository-Verzeichnis und geben Sie den Befehl python3 main.py im Terminalfenster ein:

3bf558e9cea15375.png

Klicken Sie auf den Link http://127.0.0.1:8080, um einen neuen Browsertab mit der Startseite der Anwendung zu öffnen:

fb06f382a4c03e4c.png

Die Anwendung wird „lokal“ ausgeführt. Der Cloud Shell-Editor hat hier ein bisschen Magie walten lassen. Die Anwendung wird in Cloud Shell ausgeführt, nicht auf Ihrem eigenen Computer. Als Sie auf den Link geklickt haben, wurde ein Tab nicht mit der tatsächlichen lokalen Adresse http://127.0.0.1:8080 geöffnet, sondern mit einem Proxyserver, der von Cloud Shell speziell für diesen Zweck eingerichtet wurde. Das Ergebnis ist dasselbe, als ob Sie es lokal ausführen würden.

Jetzt ausprobieren Geben Sie 25 ein und drücken Sie Convert! (Konvertieren!).

e1b9d5832f6d0058.png

Genau, 25 ist XXV in römischen Zahlen. Sie müssen hier fertig sein.

Vielleicht solltest du noch ein paar weitere Zahlen überprüfen. 25 hat funktioniert, was ist mit 24?

37982e385e17baac.png

Vielleicht waren wir etwas voreilig, als wir dachten, dass alles in Ordnung sei. Ist XXIIII die richtige Umrechnung für 24? Sollte es nicht XXIV sein?

Man könnte argumentieren, dass XXIIII richtig ist, aber das ist nicht das, was die meisten Leute erwarten. Da es sich aber nicht wirklich um einen Fehler handelt (viele Uhren zeigen die 4 als römische Ziffer IIII an), lassen wir dieses Problem für eine zukünftige Verbesserung.

Wie wäre es mit negativen Zahlen? Null? Diese Zahlen können nicht in römischen Ziffern dargestellt werden. Es scheint, dass der Nutzer keine Antwort erhält. Das ist ein Fehler, der behoben werden muss.

Durch Tests können Fehler gefunden und behoben werden. Gemini Code Assist kann uns beim Schreiben und Verwenden von Tests helfen.

5. Tests hinzufügen

Kehren Sie zum Gemini Chat-Fenster zurück und fragen Sie

How can I test the number_to_roman function?

Lesen Sie die Antwort durch. Sie sollte eine Erläuterung des unittest-Moduls und des pytest-Moduls enthalten.

Vielleicht möchten Sie, dass Gemini Code Assist diese Tests für Sie schreibt. Öffnen Sie calendar.py, in der sich der eigentliche Konvertierungscode befindet, im Editor, kehren Sie zum Gemini Chat-Fenster zurück und fragen Sie noch einmal

How can I test the number_to_roman function?

Die Antwort ist jetzt spezifischer und enthält sogar ein Unittest-Modul, das Sie kopieren oder in eine neue Datei einfügen können:

import unittest
import calendar

class NumberToRomanTest(unittest.TestCase):

    def test_convert_1(self):
        self.assertEqual(calendar.number_to_roman(1), "I")

    def test_convert_4(self):
        self.assertEqual(calendar.number_to_roman(4), "IV")

    def test_convert_9(self):
        self.assertEqual(calendar.number_to_roman(9), "IX")

    def test_convert_40(self):
        self.assertEqual(calendar.number_to_roman(40), "XL")

    def test_convert_90(self):
        self.assertEqual(calendar.number_to_roman(90), "XC")

    def test_convert_400(self):
        self.assertEqual(calendar.number_to_roman(400), "CD")

    def test_convert_900(self):
        self.assertEqual(calendar.number_to_roman(900), "CM")

    def test_convert_1990(self):
        self.assertEqual(calendar.number_to_roman(1990), "MCMXC")

    def test_convert_2023(self):
        self.assertEqual(calendar.number_to_roman(2023), "MMXXIII")

Möglicherweise sehen Sie einen anderen Code als im obigen Beispiel. Die zugrunde liegenden Modelle von Gemini Code Assist werden von Zeit zu Zeit aktualisiert, sodass die Antworten nicht immer gleich sind. Wenn Sie einen anderen Code sehen, können Sie jetzt entscheiden, ob Sie mit den in diesem Codelab gezeigten Beispielen fortfahren möchten, indem Sie den hier gezeigten Code kopieren, oder ob Sie die alternative Antwort ausprobieren möchten, die Gemini Code Assist Ihnen jetzt gibt. Wenn Sie Zeit haben, können Sie sogar beide Wege ausprobieren. Gemini Code Assist ist ein Programmierassistent, den Sie nach Bedarf nutzen können.

Klicken Sie entweder oben rechts im Gemini Chat-Fenster auf den Doppelpfeil, um eine neue Datei mit dem Unittest-Code zu erstellen, oder verwenden Sie die IDE, um eine neue Datei zu erstellen und den in diesem Lab gezeigten Code einzufügen. Drücken Sie in diesem Fenster Strg + S oder Cmd + S, um die Datei zu speichern, und nennen Sie die gespeicherte Datei „calendar-unittest.py“.

Kehren Sie zum Terminal zurück und drücken Sie STRG + C, um den Webserver zu beenden, den Sie zuvor haben laufen lassen. Sie erhalten dann eine Shell-Eingabeaufforderung. Befehl eingeben

python3 calendar-unittest.py

um die neuen Tests auszuführen.

Es gibt keine Ausgabe. Das ist nicht das, was erwartet wurde. Ist alles lautlos durchgelaufen? Sie möchten das gern genau wissen. Sehen Sie sich die Antwort von Gemini Code Assist mit dem Testcode noch einmal an. Unter dem Code waren weitere Informationen zum Ausführen des Testlaufs zu sehen:

run-unittest.png

Führen Sie den empfohlenen Befehl aus:

python -m unittest discover

Möglicherweise liegt ein Problem vor, wenn auf Ihrem Computer der Befehl python3 nicht als Alias für python verwendet wird. Führen Sie in diesem Fall Folgendes aus:

python3 -m unittest discover

Der Befehl wird ausgeführt, gibt aber Ran 0 tests in 0.000s zurück. Das Modul enthält mehrere Tests. Was steht an?

Es ist das letzte Wort im Befehl, discover. Woher kommt es? Offenbar hat Gemini Code Assist erwartet, dass der Testcode in einer Datei mit dem Namen discover oder discover.py gespeichert wird, aber nicht angegeben, dass Sie das tun sollten. Da Sie die Datei tatsächlich in calendar-unittest.py gespeichert haben, versuchen Sie, den folgenden Befehl auszuführen:

python3 -m unittest calendar-unittest

Sie sehen jetzt eine lange Ausgabe, die in etwa so beginnt:

$ python3 -m unittest calendar-unittest
.F.FFFFFF
======================================================================
FAIL: test_convert_1990 (calendar-unittest.NumberToRomanTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/charles_engelke/testing-with-duet-ai-codelab/calendar-unittest.py", line 28, in test_convert_1990
    self.assertEqual(calendar.number_to_roman(1990), "MCMXC")
AssertionError: 'MDCCCCLXXXX' != 'MCMXC'
- MDCCCCLXXXX
+ MCMXC

In der ersten Zeile wird für jeden bestandenen Test ein Zeitraum und für jeden fehlgeschlagenen Test ein F angezeigt. Die meisten Tests schlagen fehl. Anschließend werden die fehlgeschlagenen Tests einzeln aufgeführt und die erwartete und die tatsächliche Ausgabe angezeigt. Es ist etwas unklar, in welcher Reihenfolge diese Tests ausgeführt wurden. Die Tests waren in alphabetischer Reihenfolge nach Testname sortiert, nicht in der Reihenfolge, in der sie in der Datei aufgeführt sind. test_convert_1 wurde also zuerst ausgeführt, dann test_convert_1990, dann test_convert_2023 usw. Nur die Testläufe für 1 und 2023 wurden bestanden.

Als Sie diesen Code zum ersten Mal ausprobiert haben, haben Sie festgestellt, dass 24 in XXIIII umgewandelt wurde. Das war nicht ganz falsch, aber nicht die übliche Form, bei der IIII in IV umgewandelt wird. Alle fehlgeschlagenen Tests betrafen ähnliche Fälle. Als dieses Problem zum ersten Mal festgestellt wurde, hieß es im Lab: „Da es nicht wirklich falsch ist (viele Uhren zeigen 4 als römische Ziffer IIII an), lassen wir dieses Problem für eine zukünftige Verbesserung.“

Sie könnten die Testläufe so ändern, dass sie die Antworten, die der Code gibt, erwarten und akzeptieren, oder akzeptieren, dass es Zeit für diese „zukünftige Verbesserung“ ist. Ihr nächster Schritt besteht also darin, den Code mit Gemini Code Assist zu korrigieren, damit die Tests die erwarteten Antworten liefern.

6. Code optimieren

Erinnern Sie sich daran, dass Antworten wie XXIIII für 24 anstelle des häufigeren XXIV als „nicht wirklich falsch“ eingestuft und für eine zukünftige Verbesserung zurückgestellt wurden. Diese Zukunft ist jetzt. Diese „nicht wirklich falschen“ Antworten sind trotzdem ärgerlich.

Die erste Regel für wiederholte Ziffern in römischen Zahlen lautet: Wenn Sie vier identische Ziffern in einer Reihe haben, sollten sie durch eine der Ziffern gefolgt von der nächsthöheren Ziffer ersetzt werden. XXIIII sollte also durch XXIV ersetzt werden. Ebenso sollte XXXX in XL und CCCC in CD geändert werden.

Fragen Sie Gemini Code Assist, wie Sie den Wert der Variablen roman auf diese Weise ändern können, kurz bevor er von number_to_roman zurückgegeben wird:

If the final value of roman has IIII in it, that should be replaced by IV. Similarly XXXX should be replaced by XL, and CCCC should become CD. How can I make those changes?

Es wird vorgeschlagen, am Ende etwas Code hinzuzufügen:

6437c3fa2c5fabd1.png

Kopieren Sie diese Zeilen in den Editor oder geben Sie sie ein und sehen Sie sich an, was passiert:

dcefa568cab82fb7.png

Gemini Code Assist hat weitere Zeilen hinzugefügt, um die Fälle zu berücksichtigen, die nach den ersten Ersetzungen auftreten können. Beispiel: 19 wird in XVIIII, dann in XVIV und schließlich in das korrekte XIX umgewandelt.

Wenn Gemini Code Assist scheinbar nützliche Vorschläge gemacht hat, drücken Sie die Tabulatortaste, um die Empfehlungen zu akzeptieren, speichern Sie die Datei und führen Sie den Webserver noch einmal aus. Andernfalls fügen Sie die im Beispiel gezeigten Zeilen manuell hinzu und speichern Sie die Datei. Versuchen Sie es mit einer schwierigen Conversion: 1999:

a206999587fdc9.png

Das ist richtig!

Führen Sie die Tests jetzt noch einmal aus. Alle bestehen!

Die Webanwendung scheint bereit für die Produktion zu sein.

7. In Cloud Run bereitstellen

Cloud Run führt eine Containeranwendung im Internet für Sie aus. Bei Anwendungen, die mit gängigen Frameworks wie Flash geschrieben wurden, wird der Container mit dem gcloud run deploy-Befehl sogar vor der Bereitstellung erstellt. Führen Sie diesen Befehl aus:

gcloud run deploy

Im Terminal. Wenn Sie nach dem Speicherort des Quellcodes gefragt werden, drücken Sie die Eingabetaste, um den vorgeschlagenen Speicherort zu übernehmen. Wenn Sie nach einem Dienstnamen gefragt werden, drücken Sie die Eingabetaste, um den Vorschlag zu akzeptieren.

Der Befehl schlägt möglicherweise fehl, weil gcloud nicht ermitteln kann, welches Projekt verwendet werden soll. Führen Sie in diesem Fall den folgenden Befehl aus:

gcloud config set core/project <project-id>

Dabei wird durch die ID Ihres Projekts ersetzt, die mit dem Namen übereinstimmen kann. Führen Sie den Befehl gcloud run deploy dann noch einmal aus.

  • Sie werden aufgefordert, bestimmte APIs zu aktivieren, falls noch nicht geschehen. Geben Sie „y“ ein, um sie für sich aktivieren zu lassen.
  • Wählen Sie bei entsprechender Aufforderung eine Region aus, die für Sie günstig ist. Die Eingabe der Nummer, die us-central1 entspricht, ist eine sichere Wahl.
  • Geben Sie bei Aufforderung „Y“ ein, um fortzufahren.
  • Sie sollten nicht authentifizierte Aufrufe dieses Cloud Run-Dienstes zulassen. Die von Cloud Run verwendete Authentifizierungsoption eignet sich für die Verwendung durch Programme, die den Dienst aufrufen. Da es sich um eine Website handelt, verwenden Sie keine Authentifizierung.

Google Cloud erstellt den Container, stellt ihn bereit, leitet Traffic an ihn weiter und legt Zugriffsrichtlinien fest. Anschließend wird der Link zur Startseite angezeigt:

94ba7d8d63a44afd.png

Über diesen Link können Sie auf Ihre Anwendung zugreifen.

a2e51666dfd33a9f.png

Geben Sie eine Zahl ein und drücken Sie die Eingabetaste.

5021535ac991a95c.png

Was?!

Es hat auf Ihrem Computer funktioniert. Warum ist das nicht abgeschlossen?

Erfahren Sie mehr. Gemini Code Assist fragen

Why am I getting an internal server error on cloud run?

4b24321251d6eddf.png

Offenbar kann Gemini Code Assist die Logdatei lesen, in der etwas Ähnliches steht. Fragen wir Gemini Code Assist, wie Sie sich die Logs selbst ansehen können:

92d1855be73ef1d.png

Tun Sie das. Suchen Sie nach Zeilen mit roten „!!“-Fehlerindikatoren, wie unten dargestellt:

9bed4f9ed82de21c.png

Danach folgen viele Zeilen mit Details zum Callstack, aber dann kommt Folgendes:

47fc93be845f4e3f.png

Wenn Sie sich die Datei calendar.py ansehen, finden Sie dort die Funktion number_to_roman. Sie wissen, dass es richtig ist, weil es auf Ihrem Computer funktioniert hat. Was könnte in Cloud Run anders sein?

Die Antwort ist nicht ganz einfach. Python3 enthält ein Standardmodul namens calendar, genau wie die Datei „calendar.py“, in der die Funktion number_to_roman definiert ist. Auf Ihrem lokalen Computer hat Python zuerst in Ihrem Anwendungsverzeichnis nach einem Modul namens calendar gesucht. Offenbar hat Python in Cloud Run zuerst nach Standardmodulen gesucht, sie importiert und keine number_to_roman-Funktion gefunden.

Solche Unterschiede in den Umgebungen sind immer möglich. Glücklicherweise wird die Umgebung einer Anwendung mit ihr in den Container gepackt. Sie können also überall mit demselben Verhalten rechnen. Wenn Sie dieselbe containerisierte Anwendung lokal ausgeführt hätten, die Cloud Run verwendet, wäre dasselbe Problem aufgetreten.

Problem beheben Sie müssen den Namen Ihres lokalen Kalendermoduls in einen Namen ändern, der nicht auch ein Standardmodulname ist. Benennen Sie die Datei calendar.py in my_calendar.py um und ändern Sie dann die import calendar-Zeilen in main.py und calendar-unittest.py in import my_calendar. Ändern Sie schließlich die Zeile

roman = calendar.number_to_roman(number)

zu

roman = my_calendar.number_to_roman(number)

Testen Sie die Änderungen lokal, führen Sie die Tests aus und stellen Sie die App dann noch einmal bereit:

gcloud run deploy

Und jetzt funktioniert es:

ed288801c6825eb1.png

Sie können diese URL teilen und jeder, der ein Tool zur Umwandlung römischer Zahlen benötigt, kann Ihres verwenden.

8. Optional: Das Ergebnis anpassen

Ihre Anwendung wird ordnungsgemäß ausgeführt und ist für alle Nutzer im Web zugänglich. Es sieht aber etwas schlicht aus. Bevor Sie es allen zeigen, könnten Sie Gemini Code Assist bitten, das Aussehen zu verbessern.

Öffnen Sie die Datei templates/index.html. Fragen Sie im Gemini-Chatfenster:

Make this index.html file use material design.

Die Antwort besteht darin, der aktuellen Datei etwas hinzuzufügen, sodass sie in etwa so aussieht:

<!DOCTYPE html>
<html>
<head>
    <title>Roman Numerals</title>
    <link rel="stylesheet" href="https://code.getmdl.io/1.3.0/material.indigo-pink.min.css">   
    <script defer src="https://code.getmdl.io/1.3.0/material.min.js"></script>     
</head>
<body>
    <h1 class="mdl-typography--title">Roman Numerals</h1>
    <form action="/convert" method="post">
        <div class="mdl-textfield mdl-js-textfield">
            <input class="mdl-textfield__input" type="text" id="number" name="number" required />
            <label class="mdl-textfield__label" for="number">Enter a number:</label>
          </div>
          <button class="mdl-button mdl-js-button mdl-button--raised mdl-button--colored">
            Convert!
          </button>
    </form>
</body>
</html>

Kopieren Sie den vorgeschlagenen Code mit dem Symbol und fügen Sie ihn in index.html ein, um den vorhandenen Inhalt zu überschreiben. Führen Sie im Terminal python3 main.py aus und klicken Sie auf den Link, um ein Vorschaufenster zu öffnen. Die Seite ist jetzt etwas weniger schlicht:

295643ec03fcaafc.png

Sie können diesen Vorgang bei Bedarf mit der Datei convert.html wiederholen.

Gemini Code Assist kennt sich gut mit CSS aus und kann Ihnen helfen, die Anwendungsseiten auf verschiedene Arten zu gestalten. Und das ist erst der Anfang.

Da Sie diese Anwendung freigeben möchten, müssen Sie sie noch einmal in Cloud Run bereitstellen:

gcloud run deploy

Sie können die URL an Personen weitergeben, die Zahlen in römische Zahlen umwandeln müssen.

9. Glückwunsch!

Sie haben erfolgreich mit Gemini Code Assist gearbeitet, um einer Anwendung Tests hinzuzufügen, Fehler in der Anwendung zu beheben und erweiterte Funktionen hinzuzufügen.

Wenn Sie die von Ihnen erstellte Anwendung nicht mehr benötigen, können Sie sie aus dem Cloud Console-Dashboard löschen, um zukünftige Kosten zu vermeiden.

Referenzdokumente