**We are proud to announce a new release of EOSFactory, version 1.0. The main feature introduced in this release is standardized unit testing for EOS smart-contracts. Also, thanks to tight integration with Visual Studio Code you can now tap into the rich world of utilities offered by the VSC community. Our aim is to turn EOSFactory into a comprehensive IDE (Integrated Development Environment) for EOS smart-contracts.**  ## Standardized unit testing The initial EOSFactory release (v0.8 [published](https://steemit.com/eos/@tokenika/introducing-eosfactory-an-eos-smart-contract-development-and-testing-framework) three weeks ago) was a solid foundation but contained only simple examples of home-made unit tests, whose only point was to prove the concept. Therefore those unit tests could not be treated as a robust verification tool: they did not handle errors in an orderly manner and they did not offer proper assertions. This release takes [EOSFactory](https://github.com/tokenika/eosfactory) to the next level. We've integrated it with [Unittest](https://docs.python.org/2/library/unittest.html), the standard unit testing framework for Python. What it means is that from now on, you have the power of standardized Python-based unit testing at your disposal. Below is an example of an EOSFactory unit test output: ``` Test project /mnt/d/Workspaces/EOS/contracts/hello.tokenika/build Start 1: unittest 1/2 Test #1: unittest ......................... Passed 6.58 sec Start 2: test 2/2 Test #2: test ............................. Passed 5.12 sec 100% tests passed, 0 tests failed out of 2 Total Test time (real) = 11.71 sec ``` ### Main features in v1.0 We believe the features available in this release make EOSFactory reliable and production-ready, hence we label it v1.0. Below is a complete list of those new features. #### 1. Standard unit-testing framework We are utilizing the power of [Unittest](https://docs.python.org/3/library/unittest.html), the standard Python unit test framework. As emphasized in the documentation, Unittest is a fully fledged and highly standardized toolset: > The `unittest` unit testing framework was originally inspired by JUnit and has a similar flavor as major unit testing frameworks in other languages. It supports test automation, sharing of setup and shutdown code for tests, aggregation of tests into collections, and independence of the tests from the reporting framework. #### 2. Support for user-defined workspaces We are introducing clear separation between EOSFactory infrastructure (including its demo examples and smart-contract templates) and dedicated user-defined workspace, where user-created smart-contracts and unit tests can be safely stored. #### 3. Support for debugging Smart-contracts can never be properly debugged (as you cannot pause the blockchain easily), but we've come up with a good work-around for tracking a smart-contract’s execution. What you can do with EOSFactory is put in your C++ code special logger clauses (e.g. `logger_info("user: ", name{user});`) which will produce output to the console giving you the exact location of its origin, including the C++ method name, file name and line number. #### 4. Preliminary code verification When using the standard EOS toolset, in order to check for errors in a smart-contract code you need to go through the entire process of building & linking performed by the `WASM` compiler. What we offer is the option of reducing this process to a simple `CLANG` compilation (i.e. without linking). And only when your code is error-free and you are ready for testnet deployment and unit testing, you can switch to the more heavy-weight `WASM` compiler. #### 5. *Visual Studio Code* integration EOSFactory is becoming more tightly integrated with [Visual Studio Code](https://code.visualstudio.com/). When you create a new smart-contract in EOSFactory, what you get is an entire VSC project, with support for [CMake](https://cmake.org/) builds, automated tasks and [IntelliSense](https://msdn.microsoft.com/en-us/library/hcw1s69b.aspx) features. ## Why is EOSFactory needed? Undoubtedly, everything that EOSFactory offers can be done with the official EOSIO toolset, i.e. `cleos` and `eosiocpp`. Does it make EOSFactory just a simple alternative to those tools? Not really. Try to go through [EOS tutorials](https://github.com/EOSIO/eos/wiki/Tutorial-eosio-token-Contract) based on `cleos` and you'll see how much concentration is required to follow those simple examples without making a single mistake. And now imagine doing it 10 or 100 times. Surely, it's a daunting task! Code development and unit-testing involve tasks that need to be executed hundreds of times, and each time in exactly the same way and exactly the same context. Therefore those tasks need to be fully automated, as otherwise a lot of time is being wasted and, what's even worse, a lot of additional uncertainty is introduced. Manually performed actions are prone to errors. And this is what EOSFactory actually brings to the table: an easy & intuitive way to automate the process of dealing with smart-contracts. Write down, in the form of a Python script, what needs to be done multiple times in exactly the same way and exactly the same context, and then just run the script. EOSFactory will take care of everything else: it will compile your smart-contract, create a new testnet, deploy the contract, invoke its methods and verify the response, then tear down the testnet, and finally report the results. And all of this done in a couple of seconds. ## Aiming to become a comprehensive EOS IDE With *Visual Studio Code* integration all the essential programming tools become easily available, as EOSFactory smart-contract template generator is able to produce a complete *Visual Studio Code* project, which includes not only unit testing support but also: - Linux, MacOS and Windows compatibility, - [CMake](https://cmake.org/) support allowing you to compile, build and unit test your smart-contract by running those three commands: `cmake`, `make`, `ctest`. - automated tasks accessible from the VSC menu or via keyboard shortcut keys, - all the features that come with [IntelliSense](https://msdn.microsoft.com/en-us/library/hcw1s69b.aspx): e.g. code completion, content assist, code hinting, - multiple community-driven extensions, including the possibility to create a specialized EOS smart-contract extension.  ## Documentation EOSFactory source code can be found in [this repository](https://github.com/tokenika/eosfactory) on GitHub. For more detailed documentation, tutorials and installation guides, please refer to [this website](http://eosfactory.io/sphinx/build/html/). ## Feedback is welcome As we mentioned in our previous post, all feedback is very welcome, especially critical, as it motivates us towards improvement. --- **NOTE:** For the time being EOSFactory `v1.0` is compatible EOSIO `dawn-v4.0.0`. Once EOSIO stops changing rapidly and becomes stable, the subsequent EOSFactory release will be compatible with the latest EOSIO release.
author | tokenika |
---|---|
permlink | introducing-eosfactory-v1-0-with-standardized-unit-testing-and-visual-studio-code-integration |
category | eos |
json_metadata | {"tags":["eos","eosio","dev","blockchain","crypto"],"image":["https://cdn.steemitimages.com/DQmR21xQNJ4CbS1DoJEAutvYFWU9mD11PAYkCQZpLnHXLdY/EOSFactory%20logo.png","https://cdn.steemitimages.com/DQmcYyhEcoz4Az2vEf7vA1AJYgTNzhvKewsKPqd7hqbphyo/peek.png"],"links":["https://steemit.com/eos/@tokenika/introducing-eosfactory-an-eos-smart-contract-development-and-testing-framework","https://github.com/tokenika/eosfactory","https://docs.python.org/2/library/unittest.html","https://docs.python.org/3/library/unittest.html","https://code.visualstudio.com/","https://cmake.org/","https://msdn.microsoft.com/en-us/library/hcw1s69b.aspx","https://github.com/EOSIO/eos/wiki/Tutorial-eosio-token-Contract","http://eosfactory.io/sphinx/build/html/"],"app":"steemit/0.1","format":"markdown"} |
created | 2018-06-07 14:19:57 |
last_update | 2018-06-07 14:19:57 |
depth | 0 |
children | 8 |
last_payout | 2018-06-14 14:19:57 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 21.563 HBD |
curator_payout_value | 3.958 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 7,307 |
author_reputation | 5,007,110,235,602 |
root_title | "Introducing EOSFactory v1.0 with standardized unit testing and Visual Studio Code integration" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 59,697,657 |
net_rshares | 9,313,167,759,807 |
author_curate_reward | "" |
voter | weight | wgt% | rshares | pct | time |
---|---|---|---|---|---|
fractalnode | 0 | 32,038,698,510 | 5% | ||
pnc | 0 | 265,212,732,486 | 100% | ||
noisy | 0 | 1,511,646,660,511 | 100% | ||
innuendo | 0 | 750,416,824,400 | 100% | ||
gtg | 0 | 6,119,456,236,377 | 100% | ||
bitspace | 0 | 359,035,115,045 | 100% | ||
johnsmith | 0 | 10,481,955,424 | 100% | ||
perduta | 0 | 6,517,962,162 | 100% | ||
husamia | 0 | 6,388,806,255 | 100% | ||
steemitboard | 0 | 337,844,847 | 1% | ||
ktoosiu | 0 | 1,879,082,119 | 100% | ||
roomservice | 0 | 61,852,126,028 | 10% | ||
jakipatryk | 0 | 52,390,271,907 | 100% | ||
augustyn | 0 | 48,476,183,243 | 100% | ||
bubke | 0 | 18,997,881,301 | 100% | ||
jorfermo | 0 | 610,390,398 | 100% | ||
netdragonx | 0 | 107,803,090 | 100% | ||
javierjmc | 0 | 610,390,398 | 100% | ||
openledgerio | 0 | 402,857,663 | 66% | ||
stonecone | 0 | 7,810,510,389 | 100% | ||
samhenry | 0 | 208,546,818 | 100% | ||
yingpingzhang | 0 | 0 | 100% | ||
rid314 | 0 | 326,850,267 | 100% | ||
brianlewis | 0 | 4,118,306,242 | 100% | ||
sfeos | 0 | 16,942,634,368 | 100% | ||
cezarys | 0 | 27,467,764,865 | 100% | ||
marcinwolak | 0 | 610,390,398 | 100% | ||
ne0thrill | 0 | 610,361,074 | 100% | ||
aclarkuk82 | 0 | 100,747,270 | 100% | ||
tsto | 0 | 776,245,699 | 100% | ||
hackerzizon | 0 | 3,457,832,487 | 18% | ||
conceptskip | 0 | 680,201,854 | 25% | ||
philosup | 0 | 609,869,140 | 100% | ||
mulebear1 | 0 | 611,865,320 | 100% | ||
edos | 0 | 532,307,495 | 100% | ||
csx-eos | 0 | 0 | 100% | ||
eosvenezuela | 0 | 367,320,027 | 100% | ||
jackiecheng | 0 | 609,745,344 | 100% | ||
avesomejuni | 0 | 466,438,586 | 100% |
Fantastic work guys, I am looking forward to using this new release.
author | aclarkuk82 |
---|---|
permlink | re-tokenika-introducing-eosfactory-v1-0-with-standardized-unit-testing-and-visual-studio-code-integration-20180607t143431114z |
category | eos |
json_metadata | {"tags":["eos"],"app":"steemit/0.1"} |
created | 2018-06-07 14:34:30 |
last_update | 2018-06-07 14:34:30 |
depth | 1 |
children | 0 |
last_payout | 2018-06-14 14:34:30 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.000 HBD |
curator_payout_value | 0.000 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 68 |
author_reputation | 901,192,097,946 |
root_title | "Introducing EOSFactory v1.0 with standardized unit testing and Visual Studio Code integration" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 59,699,707 |
net_rshares | 183,059,961 |
author_curate_reward | "" |
voter | weight | wgt% | rshares | pct | time |
---|---|---|---|---|---|
aclarkuk82 | 0 | 100,747,270 | 100% | ||
avesomejuni | 0 | 82,312,691 | 100% |
great! Thanks for your effort. So I resteemed.
author | alienzin |
---|---|
permlink | re-tokenika-introducing-eosfactory-v1-0-with-standardized-unit-testing-and-visual-studio-code-integration-20180611t045228461z |
category | eos |
json_metadata | {"tags":["eos"],"app":"steemit/0.1"} |
created | 2018-06-11 04:52:30 |
last_update | 2018-06-11 04:52:30 |
depth | 1 |
children | 0 |
last_payout | 2018-06-18 04:52:30 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.000 HBD |
curator_payout_value | 0.000 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 46 |
author_reputation | 725,858,496,687 |
root_title | "Introducing EOSFactory v1.0 with standardized unit testing and Visual Studio Code integration" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 60,240,469 |
net_rshares | 0 |
Amazing project @tokenika, the best of lucks! Greetings from #EOSVenezuela https://steemitimages.com/0x0/https://s33.postimg.cc/nnqmdgzwf/instagram_format_32.jpg
author | eosvenezuela |
---|---|
permlink | re-tokenika-introducing-eosfactory-v1-0-with-standardized-unit-testing-and-visual-studio-code-integration-20180608t012756803z |
category | eos |
json_metadata | {"tags":["eos","eosvenezuela"],"users":["tokenika"],"image":["https://steemitimages.com/0x0/https://s33.postimg.cc/nnqmdgzwf/instagram_format_32.jpg"],"app":"steemit/0.1"} |
created | 2018-06-08 01:27:57 |
last_update | 2018-06-08 01:27:57 |
depth | 1 |
children | 0 |
last_payout | 2018-06-15 01:27:57 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.000 HBD |
curator_payout_value | 0.000 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 162 |
author_reputation | 2,732,562,338,898 |
root_title | "Introducing EOSFactory v1.0 with standardized unit testing and Visual Studio Code integration" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 59,772,644 |
net_rshares | 0 |
Will be trying this soon, thanks for developing tools for the community!
author | javierjmc |
---|---|
permlink | re-tokenika-introducing-eosfactory-v1-0-with-standardized-unit-testing-and-visual-studio-code-integration-20180607t154009364z |
category | eos |
json_metadata | {"tags":["eos"],"app":"steemit/0.1"} |
created | 2018-06-07 15:40:09 |
last_update | 2018-06-07 15:40:09 |
depth | 1 |
children | 0 |
last_payout | 2018-06-14 15:40:09 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.000 HBD |
curator_payout_value | 0.000 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 72 |
author_reputation | 420,915,675,359 |
root_title | "Introducing EOSFactory v1.0 with standardized unit testing and Visual Studio Code integration" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 59,708,644 |
net_rshares | 0 |
Great work @tokenika, I follow and appreciate the work you do to advance EOS development. U can count on my vote. Congrat!
author | pnc |
---|---|
permlink | re-tokenika-introducing-eosfactory-v1-0-with-standardized-unit-testing-and-visual-studio-code-integration-20180607t163233459z |
category | eos |
json_metadata | {"tags":["eos"],"users":["tokenika"],"app":"steemit/0.1"} |
created | 2018-06-07 16:32:33 |
last_update | 2018-06-07 16:32:33 |
depth | 1 |
children | 0 |
last_payout | 2018-06-14 16:32:33 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.000 HBD |
curator_payout_value | 0.000 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 122 |
author_reputation | 31,733,986,331,482 |
root_title | "Introducing EOSFactory v1.0 with standardized unit testing and Visual Studio Code integration" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 59,715,197 |
net_rshares | 0 |
Excited to try this out. Thank you!
author | sfeos |
---|---|
permlink | re-tokenika-introducing-eosfactory-v1-0-with-standardized-unit-testing-and-visual-studio-code-integration-20180607t152113495z |
category | eos |
json_metadata | {"tags":["eos"],"app":"steemit/0.1"} |
created | 2018-06-07 15:21:12 |
last_update | 2018-06-07 15:21:12 |
depth | 1 |
children | 0 |
last_payout | 2018-06-14 15:21:12 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.000 HBD |
curator_payout_value | 0.000 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 35 |
author_reputation | 309,719,905,083 |
root_title | "Introducing EOSFactory v1.0 with standardized unit testing and Visual Studio Code integration" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 59,706,206 |
net_rshares | 0 |
Congratulations @tokenika! You have completed some achievement on Steemit and have been rewarded with new badge(s) : [](http://steemitboard.com/@tokenika) Award for the number of upvotes received <sub>_Click on the badge to view your Board of Honor._</sub> <sub>_If you no longer want to receive notifications, reply to this comment with the word_ `STOP`</sub> To support your work, I also upvoted your post! > Do you like [SteemitBoard's project](https://steemit.com/@steemitboard)? Then **[Vote for its witness](https://v2.steemconnect.com/sign/account-witness-vote?witness=steemitboard&approve=1)** and **get one more award**!
author | steemitboard |
---|---|
permlink | steemitboard-notify-tokenika-20180607t224720000z |
category | eos |
json_metadata | {"image":["https://steemitboard.com/img/notify.png"]} |
created | 2018-06-07 22:47:18 |
last_update | 2018-06-07 22:47:18 |
depth | 1 |
children | 0 |
last_payout | 2018-06-14 22:47:18 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.000 HBD |
curator_payout_value | 0.000 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 719 |
author_reputation | 38,975,615,169,260 |
root_title | "Introducing EOSFactory v1.0 with standardized unit testing and Visual Studio Code integration" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 59,756,951 |
net_rshares | 0 |
great!
author | yingpingzhang |
---|---|
permlink | re-tokenika-introducing-eosfactory-v1-0-with-standardized-unit-testing-and-visual-studio-code-integration-20180617t114005658z |
category | eos |
json_metadata | {"tags":["eos"],"app":"steemit/0.1"} |
created | 2018-06-17 11:40:09 |
last_update | 2018-06-17 11:40:09 |
depth | 1 |
children | 0 |
last_payout | 2018-06-24 11:40:09 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.000 HBD |
curator_payout_value | 0.000 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 6 |
author_reputation | 1,348,872,191,969 |
root_title | "Introducing EOSFactory v1.0 with standardized unit testing and Visual Studio Code integration" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 61,084,367 |
net_rshares | 0 |