Ich entwickle einen End-to-End-Test, der ausgelöst wird truffle migrate
und dann Vertragsadressen für Funktionen im Test verfügbar machen muss.
Wie kann ich truffle migrate
bereitgestellte Vertragsadressen zurückgeben? Es wäre nicht ideal, die stdout
from zu analysieren truffle migrate
.
Sie sollten in der Lage sein, die Adressen aus den von truffle generierten jsonABI-Dateien (den Artefakten) abzurufen. Truffle speichert jede Version in den JSON-Dateien in der networks
Eigenschaft. Jede Version wird mit einer Nummer dargestellt. Ich konnte jedoch nicht sagen, wie diese Zahl berechnet wird und wie Sie sie übereinstimmen lassen könnten, daher ist diese Antwort leider unvollständig.
Während ein anderer Benutzer mit tieferem Wissen darüber eine vollständige Antwort liefert, die möglicherweise ein wenig hilfreich ist, können Sie damit beginnen, sich darum zu kümmern
Vielleicht möchten Sie es so versuchen.
contract('MyContract", function(accounts) {
var myContract;
beforeEach(function() {
return MyContract.new()
.then(function(instance) {
myContract = instance;
});
});
it('should be owned', function() {
...
});
Auf diese Weise beginnt jeder Test mit einem neu initialisierten Testvertrag und Ihre Tests stören keine bereitgestellten (migrierten) Verträge. Meiner Meinung nach ist dies vorzuziehen, anstatt MyContract.deployed()
Ihnen die Adresse zu geben, nach der Sie suchen.
Ich hoffe es hilft.
Peter ist
Contract.json
, ist der Wert über verfügbar.networks.{network_id}.address
. Vielen Dank!