Mantis Bugtracker          
testlink.org

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0005812TestLinkExport/Importpublic2013-07-15 10:082013-09-08 17:55
Reporternlebihan 
Assigned Tofman 
PriorityurgentSeveritymajorReproducibilityalways
StatusclosedResolutionfixed 
PlatformOSOS Version
Product Version1.9.6 (2013 Q1 - bug fixing) 
Fixed in Version1.9.8 (2013 Q3 - bug fixing) 
Summary0005812: Can not be imported - You are hitting an existent Test Case with SAME EXTERNAL ID
DescriptionHi,

We were able when using version 1.9.2 to export and import test spécifications but until 1.9.6 we got the following result error:

"Can not be imported - You are hitting an existent Test Case with SAME EXTERNAL ID:...."

This situation is really serious, because not only we cannot import test-plans within the same project but we can’t also among different projects (and we were doing this all the time).
This is really a blocking point, because most of our new test-plans are based on old ones, if we can’t import them, we need to write them all again, that will take a toll of several man/days of work per project.


Thanks in advance
Steps To ReproduceExport a test specification from one project
Import that xml file to another project
TagsNo tags attached.
Database (MySQL,Postgres,etc)Mysql
Browser
PHP Version
TestCaseID
QA Team - Task Workflow StatusREADY FOR TESTING
Attached Filespng file icon ts-external-id.png [^] (21,141 bytes) 2013-07-18 18:40

- Relationships
child of 0005731closedfman Availables hot-fixes for 1.9.7 & How To get full fixed package from gitorious 

-  Notes
(0019252)
nlebihan (reporter)
2013-07-15 14:08

When comparing to previous version, we cans see that there is a specific bloc code that we can disable within IMPORT/lib/testcases/tcImport.php
by commenting the following but we do not know why this proteection is for and what it is preventing anf if we are going to create problems by doing so...

******************************************************************************
 if( $doCreate )
    {
      // Want to block creation of with existent EXTERNAL ID, if containers ARE DIFFERENT.
      $item_id = intval($tcase_mgr->getInternalID($externalid, array('tproject_id' => $tproject_id)));
      if( $item_id > 0)
      {
        // who is his parent ?
        $owner = $tcase_mgr->getTestSuite($item_id);
        if( $owner != $container_id)
        {
          // Get full path of existent Test Cases
          $stain = $tcase_mgr->tree_manager->get_path($item_id,null, 'name');
          $n = count($stain);
          $stain[$n-1] = $tcasePrefix . config_get('testcase_cfg')->glue_character . $externalid . ':' . $stain[$n-1];
          $stain = implode('/',$stain);
          
          $resultMap[] = array($name,$messages['hit_with_same_external_ID'] . $stain);
          $doCreate = false;
        }
      }
    }
(0019254)
fman (administrator)
2013-07-15 15:45

1. this issue is a duplicate, please do some searches before posting
2. details steps to reproduce are missing
3. xml example files are missing
(0019266)
nlebihan (reporter)
2013-07-16 08:39

Hi, please find hereafter my answers:

1: I tried to find some solution here and on another places, without any success. Our problem is more about Test Suite than test cases because we need to import a bunch or more that 500 test cases within test suites and that for a lot of test suites.

So such solution/method like this found here http://www.teamst.org/forum/viewtopic.php?f=17&t=6732&sid=edee2d6111ff5be065348a95e2b254ff [^] seems not helping when trying to import test suites. Test suites has no preconditions for example.



2: How to reproduce:
    - i simply created a new test suite with one test case, then exported it using xml and default settings (export resquirements...).
    - then i create a new test suite, then try to import the previously exported xml file using default settings, and got the following error message with nothing imported at the end:

    Test Case : testcase1 : Can not be imported - You are hitting an existent Test Case with SAME EXTERNAL ID:NICOLAS TEST/25-2683:testcase1



3: Here is the xml file:

<?xml version="1.0" encoding="UTF-8"?>
<testsuite name="NICOLAS TEST" >
<node_order><![CDATA[11]]></node_order>
<details><![CDATA[]]>
</details>
<testcase internalid="312242" name="testcase1">
    <node_order><![CDATA[100]]></node_order>
    <externalid><![CDATA[2683]]></externalid>
    <version><![CDATA[1]]></version>
    <summary><![CDATA[


    xcwxccc


]]></summary>
    <preconditions><![CDATA[]]></preconditions>
    <execution_type><![CDATA[1]]></execution_type>
    <importance><![CDATA[2]]></importance>

</testcase>
</testsuite>



I found the code responsible for that when comparing with version 1.9.2 (detailed on my previous post), i can deactivate it but wanna to understand why this is for, and if i'm going to got into troubles by doing so...
(0019268)
fman (administrator)
2013-07-16 13:51

>>2: How to reproduce:
>> - i simply created a new test suite with one test case, then exported it >>using xml and default settings (export resquirements...).
>> - then i create a new test suite, then try to import the previously >>exported xml file using default settings, and got the following error message >>with nothing imported at the end:

this scenario is not the firts you reported.
Export a test specification from one project
Import that xml file to another project

What is happening is right, because if you provide externalID, (currently there is no option to not export it) TL tries to use it.
Then this is NOT an error
(0019277)
nlebihan (reporter)
2013-07-17 09:31

Let me try to be understood with another words.

This is still the same ticket simply "reopened" as i'm trying to be understood and getting some help...



we are using Testlink a lot, with a lot of tests cases within a lot of test suites for a lot of projects...


One way we found in the past to save time instead of recreating all tests suites and tests cases manually, was to export test spécifications that are common for some projects and import it where they are needed.

It was working at least for version 1.9.2.

Since we upgraded to version 1.9.6 it does not work anymore, because of some code identified and mentionned above within "tcImport.php".


I'm pretty sure that if that code is here it is for some good reasons and not an error.
My question is, for what that particular code is protecting for ? Are i'm going in trouble if i simply comment or change it ("$doCreate = false;")?

Or, is there another way to do that, that is to say keep basic requirements common to many project instead of recreating all of these manually as it was possible in the past ?
(0019278)
nlebihan (reporter)
2013-07-17 09:43
edited on: 2013-07-17 09:45

For example if i change $doCreate = false to $doCreate = true, we will got same external id for tests that are related to another project, that could be a problem...

Another solution would be to delete all external ID with reg ex before importing it, but this is not a short way as we got a lot of references and all users need to be aware of that and if they forgot we will be in first problem described, that is to say a wrong external id...

I guess that if there is an import button it is to manage that but we are going into troubles...

Thanks in advance for any help you would be pleased to give.

(0019279)
fman (administrator)
2013-07-17 09:51
edited on: 2013-07-17 09:55

>> I'm pretty sure that if that code is here it is for some good reasons and not >> an error.
>> My question is, for what that particular code is protecting for ? Are i'm
>> going in trouble if i simply comment or change it ("$doCreate = false;")?

I've a really limited time to do this kind of explanations, and just this way I'm going to do it.
If you search for issues (IGNORING STATUS) that have something to do with external ID you are going to find 0005309
in this issue and related issue I think your are going to understand why I have done the changes.

If you give a look to 1.9.7 features you may be can finb ghost test cases and ghost steps useful for you.

If you really find TL useful, think about providing some support to our work

(0019294)
fman (administrator)
2013-07-18 18:40

on latest code present on gitorious you will find an option TO DO NOT EXPORT external ID (see attached image)
(0019544)
fman (administrator)
2013-09-08 17:55

1.9.8 released

- Issue History
Date Modified Username Field Change
2013-07-15 10:08 nlebihan New Issue
2013-07-15 14:08 nlebihan Note Added: 0019252
2013-07-15 15:45 fman Note Added: 0019254
2013-07-15 15:45 fman Status new => resolved
2013-07-15 15:45 fman Resolution open => duplicate
2013-07-15 15:45 fman Assigned To => fman
2013-07-16 08:39 nlebihan Note Added: 0019266
2013-07-16 11:57 nlebihan Status resolved => assigned
2013-07-16 11:57 nlebihan Resolution duplicate => reopened
2013-07-16 13:51 fman Note Added: 0019268
2013-07-16 13:52 fman Status assigned => resolved
2013-07-16 13:52 fman Resolution reopened => no change required
2013-07-17 09:31 nlebihan Note Added: 0019277
2013-07-17 09:32 nlebihan Status resolved => assigned
2013-07-17 09:32 nlebihan Resolution no change required => reopened
2013-07-17 09:43 nlebihan Note Added: 0019278
2013-07-17 09:45 nlebihan Note Edited: 0019278 View Revisions
2013-07-17 09:51 fman Note Added: 0019279
2013-07-17 09:54 fman Note Edited: 0019279 View Revisions
2013-07-17 09:55 fman Note Edited: 0019279 View Revisions
2013-07-17 09:55 fman Note View State: 0019279: public
2013-07-18 18:40 fman Note Added: 0019294
2013-07-18 18:40 fman QA Team - Task Workflow Status TBD => READY FOR TESTING
2013-07-18 18:40 fman Status assigned => resolved
2013-07-18 18:40 fman Fixed in Version => 1.9.8 (2013 Q3 - bug fixing)
2013-07-18 18:40 fman Resolution reopened => fixed
2013-07-18 18:40 fman File Added: ts-external-id.png
2013-07-18 18:41 fman Relationship added child of 0005731
2013-09-08 17:55 fman Note Added: 0019544
2013-09-08 17:55 fman Status resolved => closed



Copyright © 2000 - 2018 MantisBT Team
Powered by Mantis Bugtracker