You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I have a bunch of request-to-response integration tests that clear the database, insert fixture data, and make assertions.
It appears that the web runner fires off a request for each test simultaneously. The CLI test runner executes tests sequentially (at least on my setup, which defaults GOMAXPROCS to 1). Here's a simple example to illustrate this behavior:
func (t*IntegrationTest) Before() {
fmt.Println("Setting up")
// Reset database by truncating tables// Insert some fixture data
}
func (t*IntegrationTest) TestIntegrationTestOne() {
println("Running test one")
// Make request// Make assertion against response output
}
func (t*IntegrationTest) TestIntegrationTestTwo() {
println("Running test two")
// Make request// Make assertion against response output
}
Output with CLI invocation:
$ revel test testapp
Setting up
Running test one
Setting up
Running test two
Output with web runner invocation:
Setting up
Setting up
Running test one
Running test two
It looks like the relevant code is in the runner, where the button[all-tests] handler triggers a click event on each button[test] element simultaneously.
I expected the web runner to behave in the same way as the CLI runner, but with this setup I immediately have to address all the problems that come with parallel execution of tests that depend on a shared resource (i.e. the database). Using a queuing mechanism to manage the AJAX requests would accomplish this.
I have a bunch of request-to-response integration tests that clear the database, insert fixture data, and make assertions.
It appears that the web runner fires off a request for each test simultaneously. The CLI test runner executes tests sequentially (at least on my setup, which defaults
GOMAXPROCS
to 1). Here's a simple example to illustrate this behavior:Output with CLI invocation:
Output with web runner invocation:
It looks like the relevant code is in the runner, where the
button[all-tests]
handler triggers a click event on eachbutton[test]
element simultaneously.I expected the web runner to behave in the same way as the CLI runner, but with this setup I immediately have to address all the problems that come with parallel execution of tests that depend on a shared resource (i.e. the database). Using a queuing mechanism to manage the AJAX requests would accomplish this.
Thanks,
~@chinigo & @rupurt
The text was updated successfully, but these errors were encountered: