`)
@@ -196,7 +196,7 @@ module.exports = class TestTab extends ViewPlugin {
`
this.outputHeader && yo.update(this.outputHeader, yo`
-
+
${label} ${this.testSuite} (${this.rawFileName})
`)
@@ -273,6 +273,7 @@ module.exports = class TestTab extends ViewPlugin {
// if all tests has been through before stopping no need to print this.
this.testsExecutionStopped.hidden = false
}
+ if (_errors) this.testsExecutionStoppedError.hidden = false
if (_errors || this.hasBeenStopped || this.readyTestsNumber === this.runningTestsNumber) {
// All tests are ready or the operation has been canceled or there was a compilation error in one of the test files.
const stopBtn = document.getElementById('runTestsTabStopAction')
@@ -364,6 +365,7 @@ module.exports = class TestTab extends ViewPlugin {
this.testsOutput.innerHTML = ''
this.testsOutput.hidden = true
this.testsExecutionStopped.hidden = true
+ this.testsExecutionStoppedError.hidden = true
const tests = this.data.selectedTests
if (!tests) return
this.resultStatistics.hidden = tests.length === 0
@@ -484,7 +486,9 @@ module.exports = class TestTab extends ViewPlugin {
this.onActivationInternal()
this.testsOutput = yo`
`
this.testsExecutionStopped = yo`
The test execution has been stopped `
+ this.testsExecutionStoppedError = yo`
The test execution has been stopped because of error(s) in your test file `
this.testsExecutionStopped.hidden = true
+ this.testsExecutionStoppedError.hidden = true
this.resultStatistics = this.createResultLabel()
this.resultStatistics.hidden = true
const el = yo`
@@ -507,6 +511,7 @@ module.exports = class TestTab extends ViewPlugin {
${this.resultStatistics}
${this.testsExecutionStopped}
+ ${this.testsExecutionStoppedError}
${this.testsOutput}
diff --git a/test-browser/tests/solidityUnittests.js b/test-browser/tests/solidityUnittests.js
index 869f62c717..9f2235ed76 100644
--- a/test-browser/tests/solidityUnittests.js
+++ b/test-browser/tests/solidityUnittests.js
@@ -44,8 +44,9 @@ module.exports = {
.click('*[data-id="testTabCheckAllTests"]')
.clickElementAtPosition('.singleTestLabel', 1)
.scrollAndClick('*[data-id="testTabRunTestsTabRunAction"]')
- .pause(15000)
- .assert.containsText('*[data-id="testTabSolidityUnitTestsOutput"]', 'browser/simple_storage_test.sol')
+ .waitForElementPresent('*[data-id="testTabSolidityUnitTestsOutputheader"]', 80000)
+ .pause(5000)
+ .assert.containsText('*[data-id="testTabSolidityUnitTestsOutput"]', 'MyTest (browser/simple_storage_test.sol)')
.assert.containsText('*[data-id="testTabSolidityUnitTestsOutput"]', '✓ Initial value should be100')
.assert.containsText('*[data-id="testTabSolidityUnitTestsOutput"]', '✓ Value is set200')
.assert.containsText('*[data-id="testTabSolidityUnitTestsOutput"]', '✘ Should fail for wrong value200')
@@ -63,12 +64,14 @@ module.exports = {
.click('*[data-id="testTabCheckAllTests"]')
.clickElementAtPosition('.singleTestLabel', 2)
.scrollAndClick('*[data-id="testTabRunTestsTabRunAction"]')
- .pause(20000)
+ .waitForElementPresent('*[data-id="testTabSolidityUnitTestsOutputheader"]', 40000)
+ .pause(5000)
.assert.containsText('*[data-id="testTabSolidityUnitTestsOutput"]', 'browser/ks2b_test.sol')
.assert.containsText('*[data-id="testTabSolidityUnitTestsOutput"]', '✓ Check project exists')
.assert.containsText('*[data-id="testTabSolidityUnitTestsOutput"]', '✘ Check wrong project owner')
.assert.containsText('*[data-id="testTabSolidityUnitTestsOutput"]', '✘ Check wrong sender')
.assert.containsText('*[data-id="testTabSolidityUnitTestsOutput"]', '✘ Check wrong value')
+ .pause(5000)
.assert.containsText('*[data-id="testTabSolidityUnitTestsOutput"]', '✓ Check project is fundable')
.assert.containsText('*[data-id="testTabSolidityUnitTestsOutput"]', 'owner is incorrect')
.assert.containsText('*[data-id="testTabSolidityUnitTestsOutput"]', 'wrong sender')
@@ -85,11 +88,11 @@ module.exports = {
.click('*[data-id="testTabRunTestsTabStopAction"]')
.pause(2000)
.assert.containsText('*[data-id="testTabRunTestsTabStopAction"]', 'Stopping')
- .pause(10000)
+ .waitForElementPresent('*[data-id="testTabSolidityUnitTestsOutputheader"]', 40000)
.assert.containsText('*[data-id="testTabSolidityUnitTestsOutput"]', 'browser/ks2b_test.sol')
.notContainsText('*[data-id="testTabSolidityUnitTestsOutput"]', 'browser/4_Ballot_test.sol')
.notContainsText('*[data-id="testTabSolidityUnitTestsOutput"]', 'browser/simple_storage_test.sol')
- .pause(5000)
+ .pause(6000)
.assert.containsText('*[data-id="testTabTestsExecutionStopped"]', 'The test execution has been stopped')
},
@@ -102,9 +105,10 @@ module.exports = {
.click('*[data-id="testTabCheckAllTests"]')
.clickElementAtPosition('.singleTestLabel', 3)
.scrollAndClick('*[data-id="testTabRunTestsTabRunAction"]')
- .pause(10000)
+ .waitForElementPresent('*[data-id="testTabSolidityUnitTestsOutputheader"]', 40000)
.waitForElementPresent('*[data-id="testTabSolidityUnitTestsOutput"]')
.assert.containsText('*[data-id="testTabSolidityUnitTestsOutput"]', 'SyntaxError: No visibility specified')
+ .assert.containsText('*[data-id="testTabTestsExecutionStoppedError"]', 'The test execution has been stopped because of error(s) in your test file')
},
'Should fail on deploy': function (browser) {
@@ -116,7 +120,7 @@ module.exports = {
.click('*[data-id="testTabCheckAllTests"]')
.clickElementAtPosition('.singleTestLabel', 4)
.scrollAndClick('*[data-id="testTabRunTestsTabRunAction"]')
- .pause(10000)
+ .waitForElementPresent('*[data-id="testTabSolidityUnitTestsOutputheader"]', 40000)
.waitForElementPresent('*[data-id="testTabSolidityUnitTestsOutput"]')
.assert.containsText('*[data-id="testTabSolidityUnitTestsOutput"]', 'contract deployment failed after trying twice')
},
@@ -130,7 +134,7 @@ module.exports = {
.click('*[data-id="testTabCheckAllTests"]')
.clickElementAtPosition('.singleTestLabel', 5)
.scrollAndClick('*[data-id="testTabRunTestsTabRunAction"]')
- .pause(15000)
+ .waitForElementPresent('*[data-id="testTabSolidityUnitTestsOutputheader"]', 40000)
.waitForElementPresent('*[data-id="testTabSolidityUnitTestsOutput"]')
.assert.containsText('*[data-id="testTabSolidityUnitTestsOutput"]', `Method 'add' can not have parameters inside a test contract`)
},
@@ -150,8 +154,9 @@ function runTests (browser) {
.clickLaunchIcon('solidityUnitTesting')
.pause(500)
.scrollAndClick('#runTestsTabRunAction')
+ .waitForElementPresent('*[data-id="testTabSolidityUnitTestsOutputheader"]', 40000)
+ .pause(5000)
.waitForElementPresent('#solidityUnittestsOutput div[class^="testPass"]')
- .pause(15000)
.assert.containsText('#solidityUnittestsOutput', 'browser/4_Ballot_test.sol')
.assert.containsText('#solidityUnittestsOutput', '✓ Check winning proposal')
.assert.containsText('#solidityUnittestsOutput', '✓ Check winnin proposal with return value')