Hi Shujie,

Is the web application "Testlink" by any chance (the ID sure do look like
TL id's)? If so, we have a pytest plugin we have been using internally for
a couple of year already and I should be able to get (internal) permission
to release it (it is thoroughly documented).

Otherwise, what Holger is suggesting is the approach we have taken for our
implementation (we have a pytest.testlink marker for that purpose).

Best 

/Laurent 

On 5/22/13 11:01 AM, "holger krekel" <[email protected]> wrote:

>Hi Shujie,
>
>On Wed, May 22, 2013 at 13:29 -0400, Liao, Shujie wrote:
>> Hi,
>> 
>> We want to update the test result automatically from pytest to a web
>>application, we run pytest from Jenkins currently , and our plan is to
>>run a script as post step to make this happen.
>> 
>> We have thousands of test cases in an excel file, and now they were all
>>imported to the web tool(the tool generated a unique id for each test),
>>the problem is, the test name in web tool and from pytest are not
>>exactly the same, and so far we don't have plan as well as hands to make
>>them the same....
>> 
>> Our thoughts is to pass the test id to each pytest test case, so that
>>from output result, the id becomes part of test name, then we have the
>>map from pytest test cases to the web tool.
>> 
>> We are looking for a feature from pytest, which can help achieve
>>following requirements:
>> 
>> 1.       Can easily inject an external id to each test case, both
>>non-parameterized and parameterized test.
>> 
>> 2.       The injected id will be part of test name in output
>> 
>> 3.       Without impacting existing parameterized mechanism (or need
>>minor modification is fine)
>> 
>> For parameterized test, I tried to use
>>@pytest.mark.parametrize(('name'),create_data,ids=['DEMO-1','DEMO-2']),
>>of them, "DEMO-1" and "DEMO-2" are ids from the test cases in web tool,
>>I got this as output:
>> 
>> 
>> platform linux2 -- Python 2.7.3 -- pytest-2.3.4
>> collected 2 items
>> <Module 'test_demo.py'>
>>   <Class 'TestDemo'>
>>     <Instance '()'>
>>       <Function 'test_generatekeypair[DEMO-1]'>
>>       <Function 'test_generatekeypair[DEMO-2]'>
>> 
>> However, for non-parameterized test, seems this solution is less
>>decent, although we can pass the parameter without using it, still seems
>>ugly...
>> 
>> 
>> 
>> Is there a better way we can do this?
>
>It all depends a bit but you might look into marking your tests like
>this::
>
>    # content of test_file.py
>
>    import pytest
>
>    @pytest.mark.id("demo1")
>    def test_hello():
>        pass
>
>    @pytest.mark.id("demo2")
>    def test_world():
>        pass
>
>
>and then implementing a hook which transfers the marks as part of the
>test id:
>
>    # content of conftest.py
>    
>    def pytest_collection_modifyitems(items):
>        for item in items:
>            id = item.keywords.get("id", None)
>            if id is not None and getattr(id, "args", None):
>                item.name += "[%s]" % id.args[0]
>
>which when run gives this:
>
>    $ py.test -v test_file.py
>
>    test_file.py:4: test_hello[demo1] PASSED
>    test_file.py:8: test_world[demo2] PASSED
>
>Of course, you could also have a different way to configure
>the names in the conftest hook, e.g. by reading a file which
>maps test ids to names or so.
>
>HTH,
>holger
>
>        
>
>> 
>> 
>> The information contained in this electronic mail transmission
>> may be privileged and confidential, and therefore, protected
>> from disclosure. If you have received this communication in
>> error, please notify us immediately by replying to this
>> message and deleting it from your computer without copying
>> or disclosing it.
>> 
>> 
>
>> _______________________________________________
>> Pytest-dev mailing list
>> [email protected]
>> http://mail.python.org/mailman/listinfo/pytest-dev
>
>_______________________________________________
>Pytest-dev mailing list
>[email protected]
>http://mail.python.org/mailman/listinfo/pytest-dev

_______________________________________________
Pytest-dev mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pytest-dev

Reply via email to