I don't want to run an ethereum node on my local machine, but for my project I need to tests solidity contracts. Are there any tools that allow such thing?
You have to run a node at least locally, but I think private chains are what you're looking for. Basically you just run a private chain on your local computer (create your own chain) and then mine that chain so it processes transactions (your contracts).
Check this, its a great tutorial to get started on Ubuntu.
You can also use a test chain and get test ethers through a faucet. I use Ropsten and it works well. Technically you'll be running a node and it might take a little to sync but then you can deploy contracts on an actual network.
Is there a way to unit test Solidity contractswithout running ethereum node? I don't want to run an ethereum node on my local machine
Since your Question is to test smart contract without running in a node, suggesting to have a private network is not the answer, although its a good way to test smart Contracts. And as mentioned in @jojeyh's answer
You have to run a node at least locally
I don't think its necessary for you to have a node running.
With Remix IDE, the browser IDE of solidity, You have two options for this.
- Use Injected web3 with a service like metamask (you have to install the browser plugin) and connect to a test network.
This question might also be useful to you.
OR With testrpc
What you are looking for is not the browser based one, you can always use testrpc as @ismael mentioned in a comment. And as mentioned in there github repo they use EthereumJS to simulate fullnode behavior hence your goal is achieved.
testrpc is a Node.js based Ethereum client for testing and development. It uses ethereumjs to simulate full client behavior and make developing Ethereum applications much faster. It also includes all popular RPC functions and features (like events) and can be run deterministically to make development a breeze.
if you want to setup a private node as suggested by some others, refer go-ethereum github wiki page at first. but in this case you are running a node.
Hope this helps!