Frage

Ich scheine über einen Amazon S3-kompatiblen Test-Server wieder zu lesen, die Sie auf Ihrem eigenen Server für Unit-Tests oder was auch immer laufen konnten. Allerdings habe ich erschöpft nur meine Geduld mit Google und AWS für diese suchen. Gibt es so etwas gibt es? Wenn nicht, ich glaube, ich schreibe werde.

. Hinweis: Ich bitte über Amazon S3 (das Speichersystem), anstatt Amazon EC2 (Cloud-Computing)

War es hilfreich?

Lösung

Denken Sie an Park Place ?

FYI, seine alte Homepage ist offline.

Andere Tipps

Ich denke, moto ( https://github.com/spulec/moto ) ist das perfekte Werkzeug, für Ihre Unittests. Moto verhöhnt alle Zugriffe auf S3, SQS, usw. und können in einer beliebigen Programmiersprache mit ihrem Web-Server verwendet werden.

Es ist trivial zu installieren, leicht und schnell.

Von moto README:

Stellen Sie sich vor Sie haben den folgenden Code ein, den Sie testen wollen:

import boto
from boto.s3.key import Key

class MyModel(object):
    def __init__(self, name, value):
        self.name = name
        self.value = value

    def save(self):
        conn = boto.connect_s3()
        bucket = conn.get_bucket('mybucket')
        k = Key(bucket)
        k.key = self.name
        k.set_contents_from_string(self.value)

Nehmen Sie eine Minute zu denken, wie Sie in der Vergangenheit, dass getestet haben würden. Jetzt sehen Sie, wie Sie es mit Moto testen können:

import boto
from moto import mock_s3
from mymodule import MyModel

@mock_s3
def test_my_model_save():
    model_instance = MyModel('steve', 'is awesome')
    model_instance.save()

    conn = boto.connect_s3()
    assert conn.get_bucket('mybucket').get_key('steve') == 'is awesome'

Park Place hat Github bewegt: http://github.com/technoweenie/parkplace

Eucalyptus http://eucalyptus.cs.ucsb.edu/

  

EUCALYPTUS - Elastic Utility Computing   Architektur für die Anbindung Ihrer Programme   Zu nützlichen Systems - ist ein Open-Source   Software-Infrastruktur für   Umsetzung „Cloud Computing“ auf   Cluster. Die aktuelle Schnittstelle zu   EUCALYPTUS ist kompatibel mit Amazon   EC2-Schnittstelle, aber die Infrastruktur   unterstützen soll multiple   clientseitige Schnittstellen.

Beachten Sie, dass nach der Dokumentation, Eucalypus einer Neuimplementierung beinhaltet nicht nur die EC2-Schnittstelle, sondern auch System der S3 Lagerung. Das Speicherkomponente wird Walrus genannt. ( http://open.eucalyptus.com/wiki/EucalyptusUserGuide_v1.5.2 )

Gefälschte S3 erscheint eine up-to-date Neuimplementierung von S3 zu sein, die speziell für Verwendung in Tests.

Wir liefen in das Problem der Prüfung unsere S3 basierten Code lokal und implementiert tatsächlich einen kleinen Java-Servers, der den S3-Objekt API emuliert. Wie es für andere nützlich sein könnte, wir Setup ein GitHub Repo zusammen mit einer kleinen Website: http://s3ninja.net - alle Open Source unter der MIT-Lizenz.

Es ist ziemlich klein und einfach und kann Setup in Minuten. (Als SIRIUS basierte Anwendung, statup auf einem moderaten Server dauert weniger als eine Sekunde).

Amazon nutzt Xen, so können Sie wahrscheinlich nur Ihre AMI in Ihrer eigenen Xen-Installation ausführen. Ich würde nur eine Instanz anwerfen und die Tests dort laufen, though. Es kostet nicht viel, und Sie sollen in der Regel in Ordnung sein mit lokal entwickelt und testet es selten auf ihrem System.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top