No sé qué significa este error o cómo solucionarlo.
Intento seguir el tutorial que se encuentra aquí y cuando llego al punto en el que tengo que ejecutar la "prueba de trufas", aparece el siguiente error.
with TestAdoption "before all" hook: prepare suite: Error: Could not find artifacts for ''EthereumPetShopTutorial/contracts/Adoption.sol" from any sources
Salida deTruffle version
Truffle v4.1.5 (core: 4.1.5)
Solidity v0.4.21 (solc-js)
este es mi archivo 2_deploy_contracts.js
var Adoption = artifacts.require("Adoption");
module.exports = function(deployer) {
deployer.deploy(Adoption);
};
este es mi archivo TestAdoption.sol:
pragma solidity ^0.4.17;
import "truffle/Assert.sol";
import "truffle/DeployedAddresses.sol";
import "../contracts/Adoption.sol";
contract TestAdoption {
Adoption adoption = Adoption(DeployedAddresses.Adoption());
// Testing the adopt() function
function testUserCanAdoptPet() public {
uint returnedId = adoption.adopt(8);
uint expected = 8;
Assert.equal(returnedId, expected, "Adoption of pet ID 8 should be recorded.");
}
}
Esta es mi estructura de archivos:
Hay algo mal con la última versión de trufa. Para resolver este problema, tuve que hacer lo siguiente para encontrar una versión de trufa que funcionara.
Primero verifique las versiones disponibles de trufa con el siguiente comando.
npm view truffle versions
Luego, para cada elemento de la lista a partir de la última versión. Desinstalé trufa con
npm uninstall -g truffle
luego instaló la siguiente versión más antigua con
npm install -g truffle@<version#>
luego eliminó la carpeta de compilación
luego compiló el proyecto con
truffle compile
luego corrió
truffle test
si esto falla, pase a la siguiente versión más antigua y repita la prueba.
En mi caso, una versión funcional de truffle era 4.1.4
No puede encontrar el contrato. Debe estar en la ./contracts
carpeta relativa a su directorio de trabajo actual.
El compilador creará abstracciones de contratos y las colocará en la ./build/contracts
carpeta you.
Se le dice que vaya allí para encontrar Adoption.sol
por esta línea:
var Adoption = artifacts.require("Adoption");
Espero eso ayude.
pd Si esto no funciona, háganos saber la versión real de la trufa que está usando (porque cambia).
$ truffle version
Mismo problema con 4.1.5, volviendo a 4.1.4 solucionado.
travis rivera
Rob Hitchens
./build
carpeta y luegotruffle compile
.travis rivera