From: | Navnath Gadakh <navnath(dot)gadakh(at)enterprisedb(dot)com> |
---|---|
To: | Dave Page <dpage(at)pgadmin(dot)org> |
Cc: | pgadmin-hackers <pgadmin-hackers(at)postgresql(dot)org>, Kanchan Mohitey <kanchan(dot)mohitey(at)enterprisedb(dot)com> |
Subject: | Re: pgAdmin4: Test result enhancement patch |
Date: | 2017-03-27 04:15:46 |
Message-ID: | CAOAJCYp-rJHKqJjjkxZQnhk2Ed+ap_b_rdM-TPoOgt7kh8eVhQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgadmin-hackers |
Hello Dave,
On Fri, Mar 24, 2017 at 9:10 PM, Dave Page <dpage(at)pgadmin(dot)org> wrote:
> Hi
>
> On Fri, Mar 24, 2017 at 3:13 PM, Navnath Gadakh
> <navnath(dot)gadakh(at)enterprisedb(dot)com> wrote:
> >
> >> When running with the patch:
> >>
> >> 1) The browser isn't closed, and the script never exits - it just sits
> >> indefinitely at:
> >>
> >> =====
> >> Please check output in file:
> >> /Users/dpage/git/pgadmin4/web/regression/regression.log
> >>
> >> make: *** [check] Error 1
> >> =====
> >>
> >> without returning to a shell prompt. The browser exits when I hit
> Ctrl+C.
>
> The above is still a problem. In fact, not only do I have to hit
> Ctrl+C, but then the browser prompts me to check I really do want to
> exit.
>
> There's also another problem that just showed up. I got the following
> failure on PG 9.4 (due to a known intermittent bug that Ashesh and
> Tira(at)Pivotal are working on). Note how it's not reported in the
> summary (or the JSON output):
>
I found the issue, In the feature tests we need to add a scenario name for
each test case. the purpose of this patch is to print the *failed/skipped* test
class name with the scenario name like:
*152 tests passed*
*1 test failed:*
* LoginRoleGetTestCase (Check Role Node)*
*16 tests skipped:*
* SynonymGetTestCase (Fetch synonym Node URL)*
But our in-built test framework does not provide that scenario name with
failed/skipped test case that's why I override *apply_scenario() *function.
*def apply_scenario(scenario, test):*
* name, parameters = scenario*
* parameters["scenario_name"] = name*
While printing the result, I have checked the *if 'scenario_name' in
test as we need to print scenario name in test summary as well as in JSON
file.*
I can do it without scenario name but for better understanding which test
scenario is failed it's good to add a scenario name with each test case.
See this is how test cases looks like while printing on console
*API:*
*runTest
(pgadmin.browser.server_groups.servers.databases.schemas.types.tests.test_types_put.TypesUpdateTestCase)*
*Update type under schema node ... ok*
* Feature tests:*
*runTest (pgadmin.utils.tests.test_versioned_template_loader.TestVersionedTemplateLoader)...
ok*
No scenario name in feature tests.
but our inbuilt test freamework does not provide
>
> runTest (pgadmin.feature_tests.connect_to_server_feature_test.
> ConnectsToServerFeatureTest)
> ... ERROR
> runTest (pgadmin.feature_tests.table_ddl_feature_test.TableDdlFeatureTest)
> ... ok
> runTest (pgadmin.utils.tests.test_versioned_template_loader.
> TestVersionedTemplateLoader)
> ... ok
>
> ======================================================================
> ERROR: runTest (pgadmin.feature_tests.connect_to_server_feature_test.
> ConnectsToServerFeatureTest)
> ----------------------------------------------------------------------
> Traceback (most recent call last):
> File "/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/
> connect_to_server_feature_test.py",
> line 37, in runTest
> self._tables_node_expandable()
> File "/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/
> connect_to_server_feature_test.py",
> line 73, in _tables_node_expandable
> self.page.toggle_open_tree_item('test_table')
> File "/Users/dpage/git/pgadmin4/web/regression/feature_utils/
> pgadmin_page.py",
> line 68, in toggle_open_tree_item
> self.find_by_xpath("//*[(at)id='tree']//*[.='" + tree_item_text +
> "']/../*[(at)class='aciTreeButton']").click()
> File "/Users/dpage/git/pgadmin4/web/regression/feature_utils/
> pgadmin_page.py",
> line 71, in find_by_xpath
> return self.wait_for_element(lambda driver:
> driver.find_element_by_xpath(xpath))
> File "/Users/dpage/git/pgadmin4/web/regression/feature_utils/
> pgadmin_page.py",
> line 128, in wait_for_element
> return self._wait_for("element to exist", element_if_it_exists)
> File "/Users/dpage/git/pgadmin4/web/regression/feature_utils/
> pgadmin_page.py",
> line 162, in _wait_for
> "Timed out waiting for " + waiting_for_message)
> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
> packages/selenium/webdriver/support/wait.py",
> line 80, in until
> raise TimeoutException(message, screen, stacktrace)
> TimeoutException: Message: Timed out waiting for element to exist
>
>
> ----------------------------------------------------------------------
> Ran 153 tests in 60.698s
>
> FAILED (errors=1, skipped=12)
>
> ...
> ...
> ...
>
This error will be in shown in the summary as well as in JSON file when we
add 'scenario_name' for each feature test.
If you have any other thinking please let me know.
>
> ======================================================================
> Test Result Summary
> ======================================================================
>
> Regression - EPAS 9.5:
>
> 153 tests passed
> 0 tests failed
> 0 tests skipped
>
> Regression - PG 9.5:
>
> 141 tests passed
> 0 tests failed
> 12 tests skipped:
> SynonymGetTestCase (Fetch synonym Node URL)
> PackageDeleteTestCase (Fetch Package Node URL)
> ResourceGroupsGetTestCase (Get resource groups)
> SynonymDeleteTestCase (Fetch synonym Node URL)
> ResourceGroupsAddTestCase (Add resource groups)
> PackagePutTestCase (Fetch Package Node URL)
> SynonymPutTestCase (Fetch synonym Node URL)
> ResourceGroupsPutTestCase (Put resource groups)
> ResourceGroupsDeleteTestCase (Delete resource groups)
> SynonymAddTestCase (Default Node URL)
> PackageAddTestCase (Fetch Package Node URL)
> PackageGetTestCase (Fetch Package Node URL)
>
> Regression - PG 9.4:
>
> 141 tests passed
> 0 tests failed
> 12 tests skipped:
> SynonymGetTestCase (Fetch synonym Node URL)
> PackageDeleteTestCase (Fetch Package Node URL)
> ResourceGroupsGetTestCase (Get resource groups)
> SynonymDeleteTestCase (Fetch synonym Node URL)
> ResourceGroupsAddTestCase (Add resource groups)
> PackagePutTestCase (Fetch Package Node URL)
> SynonymPutTestCase (Fetch synonym Node URL)
> ResourceGroupsPutTestCase (Put resource groups)
> ResourceGroupsDeleteTestCase (Delete resource groups)
> SynonymAddTestCase (Default Node URL)
> PackageAddTestCase (Fetch Package Node URL)
> PackageGetTestCase (Fetch Package Node URL)
>
> ======================================================================
>
Thanks.
>
>
>
>
> --
> Dave Page
> Blog: http://pgsnake.blogspot.com
> Twitter: @pgsnake
>
> EnterpriseDB UK: http://www.enterprisedb.com
> The Enterprise PostgreSQL Company
>
--
Regards,
Navnath Gadakh
EnterpriseDB Corporation
The Enterprise PostgreSQL Company
From | Date | Subject | |
---|---|---|---|
Next Message | Akshay Joshi | 2017-03-27 09:09:36 | Re: Patch for Feature #1344 Can't use multiple monitors (Windows 10) |
Previous Message | Dave Page | 2017-03-27 01:52:50 | pgAdmin 4 commit: Don't require an auth key for the static help files. |