Truffle - test only function?
I have a large amount of contracts which I'm testing after applying changes. I'd like to add solidity functions which will be compiled only for testing, but not on mainnet nor ropsten. Is this even possible?
The reason I'm doing this is that I need to write a lot of JS code with adding votings, voting out from accounts and some more to get tokens which I would like to avoid and simply add a single test-only function like testOnlyMint(uint pAmount).
solidity truffle
add a comment |
I have a large amount of contracts which I'm testing after applying changes. I'd like to add solidity functions which will be compiled only for testing, but not on mainnet nor ropsten. Is this even possible?
The reason I'm doing this is that I need to write a lot of JS code with adding votings, voting out from accounts and some more to get tokens which I would like to avoid and simply add a single test-only function like testOnlyMint(uint pAmount).
solidity truffle
add a comment |
I have a large amount of contracts which I'm testing after applying changes. I'd like to add solidity functions which will be compiled only for testing, but not on mainnet nor ropsten. Is this even possible?
The reason I'm doing this is that I need to write a lot of JS code with adding votings, voting out from accounts and some more to get tokens which I would like to avoid and simply add a single test-only function like testOnlyMint(uint pAmount).
solidity truffle
I have a large amount of contracts which I'm testing after applying changes. I'd like to add solidity functions which will be compiled only for testing, but not on mainnet nor ropsten. Is this even possible?
The reason I'm doing this is that I need to write a lot of JS code with adding votings, voting out from accounts and some more to get tokens which I would like to avoid and simply add a single test-only function like testOnlyMint(uint pAmount).
solidity truffle
solidity truffle
asked Jan 26 at 18:16
Radeg90Radeg90
1337
1337
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
Something you can do is create a new contract called something like TestOnlyContract, have it inherit from the base contract and then add the necessary test only functions.
add a comment |
Excellent question. Out of the box, there is no preprocess for Solidity where you could transform your program at precompile-time similar to C macros (#define, #ifdef, #endif, ...). So it will be difficult to include/exclude testcode depending on your build target.
There is an issue in solidity's repository, addressing the preprocessor feature, but it doesn't seem to be active. https://github.com/ethereum/solidity/issues/10
Moreover, there are custom solutions for this like https://github.com/Lamarkaz/psol, but I have no idea how stable they are and how easy it is to integrate them into truffle.
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "642"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fethereum.stackexchange.com%2fquestions%2f66187%2ftruffle-test-only-function%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
Something you can do is create a new contract called something like TestOnlyContract, have it inherit from the base contract and then add the necessary test only functions.
add a comment |
Something you can do is create a new contract called something like TestOnlyContract, have it inherit from the base contract and then add the necessary test only functions.
add a comment |
Something you can do is create a new contract called something like TestOnlyContract, have it inherit from the base contract and then add the necessary test only functions.
Something you can do is create a new contract called something like TestOnlyContract, have it inherit from the base contract and then add the necessary test only functions.
answered Jan 26 at 22:51
Rosco KalisRosco Kalis
1,1121421
1,1121421
add a comment |
add a comment |
Excellent question. Out of the box, there is no preprocess for Solidity where you could transform your program at precompile-time similar to C macros (#define, #ifdef, #endif, ...). So it will be difficult to include/exclude testcode depending on your build target.
There is an issue in solidity's repository, addressing the preprocessor feature, but it doesn't seem to be active. https://github.com/ethereum/solidity/issues/10
Moreover, there are custom solutions for this like https://github.com/Lamarkaz/psol, but I have no idea how stable they are and how easy it is to integrate them into truffle.
add a comment |
Excellent question. Out of the box, there is no preprocess for Solidity where you could transform your program at precompile-time similar to C macros (#define, #ifdef, #endif, ...). So it will be difficult to include/exclude testcode depending on your build target.
There is an issue in solidity's repository, addressing the preprocessor feature, but it doesn't seem to be active. https://github.com/ethereum/solidity/issues/10
Moreover, there are custom solutions for this like https://github.com/Lamarkaz/psol, but I have no idea how stable they are and how easy it is to integrate them into truffle.
add a comment |
Excellent question. Out of the box, there is no preprocess for Solidity where you could transform your program at precompile-time similar to C macros (#define, #ifdef, #endif, ...). So it will be difficult to include/exclude testcode depending on your build target.
There is an issue in solidity's repository, addressing the preprocessor feature, but it doesn't seem to be active. https://github.com/ethereum/solidity/issues/10
Moreover, there are custom solutions for this like https://github.com/Lamarkaz/psol, but I have no idea how stable they are and how easy it is to integrate them into truffle.
Excellent question. Out of the box, there is no preprocess for Solidity where you could transform your program at precompile-time similar to C macros (#define, #ifdef, #endif, ...). So it will be difficult to include/exclude testcode depending on your build target.
There is an issue in solidity's repository, addressing the preprocessor feature, but it doesn't seem to be active. https://github.com/ethereum/solidity/issues/10
Moreover, there are custom solutions for this like https://github.com/Lamarkaz/psol, but I have no idea how stable they are and how easy it is to integrate them into truffle.
edited Jan 26 at 20:28
answered Jan 26 at 20:22
ivicaaivicaa
5,4981938
5,4981938
add a comment |
add a comment |
Thanks for contributing an answer to Ethereum Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fethereum.stackexchange.com%2fquestions%2f66187%2ftruffle-test-only-function%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown