damianszczepanik / cucumber-reporting

HTML reports for Cucumber
GNU Lesser General Public License v2.1
548 stars 403 forks source link

doc_string fields results in "Result was missing for this step" #10

Closed langvtran closed 11 years ago

langvtran commented 11 years ago

My report is generating a lot of "Result was missing for this step". Appears to be from the doc_string field in my generated json report.

cucumber_1.json

[{
        "id" : "command-line-interface-for-pas",
        "description" : "",
        "name" : "Command Line Interface for PAS",
        "keyword" : "Feature",
        "line" : 1,
        "uri" : "features/command_line_interface.feature"
    }, {
        "id" : "adding-invalid-attribute-values",
        "description" : "",
        "name" : "Adding invalid attribute values",
        "keyword" : "Feature",
        "line" : 1,
        "elements" : [{
                "id" : "adding-invalid-attribute-values;adding-a-visitor-attribute-value-for-a-non-valid-attribute-should-return-http-400-and-attribute-shouldnt-be-stored",
                "description" : "",
                "name" : "Adding a visitor attribute value for a non-valid attribute should return HTTP 400 and attribute shouldnt be stored",
                "keyword" : "Scenario",
                "line" : 3,
                "steps" : [{
                        "name" : "visitor with Id unknownShopperId_1234 has no attributes",
                        "keyword" : "Given ",
                        "line" : 4
                    }, {
                        "name" : "the attribute \"invalidAttribute\" has NOT been defined",
                        "keyword" : "And ",
                        "line" : 5
                    }, {
                        "name" : "I PUT to /visitor/unknownShopperId_1234:",
                        "keyword" : "When ",
                        "line" : 6,
                        "doc_string" : {
                            "value" : "\t{\n\t    \"Id\": \"unknownShopperId_1234\",\n\t    \"Attributes\": [{\n\t        \"Name\": \"invalidAttribute\",\n\t        \"Value\": \"not\",\n\t        \"StartDate\": \"Yesterday\",\n\t        \"EndDate\": \"Tomorrow\"\n\t    }]\n\t}",
                            "line" : 7,
                            "content_type" : ""
                        }
                    }, {
                        "name" : "I expect to get an HTTP response code of 400",
                        "keyword" : "Then ",
                        "line" : 18
                    }, {
                        "name" : "I expect the following error response:",
                        "keyword" : "And ",
                        "line" : 19,
                        "doc_string" : {
                            "value" : "\t{\n\t    \"Errors\": [\"Attribute invalidAttribute is not defined.\"]\n\t}",
                            "line" : 20,
                            "content_type" : ""
                        }
                    }, {
                        "result" : {
                            "duration" : 42913261,
                            "status" : "passed"
                        },
                        "name" : "visitor with id unknownShopperId_1234 should have no attributes",
                        "keyword" : "And ",
                        "line" : 25,
                        "match" : {
                            "arguments" : [{
                                    "val" : "unknownShopperId_1234",
                                    "offset" : 16
                                }
                            ],
                            "location" : "AttributeValueSteps.visitor_with_id_unknownShopperId_has_no_attributes(String)"
                        }
                    }
                ],
                "type" : "scenario"
            }, {
                "id" : "adding-invalid-attribute-values;adding-an-attribute-value-with-start-date-greater-than-end-date-should-return-http-400-and-attribute-shouldn\u0027t-be-stored.",
                "description" : "",
                "name" : "Adding an attribute value with start date greater than end date should return HTTP 400 and attribute shouldn\u0027t be stored.",
                "keyword" : "Scenario",
                "line" : 27,
                "steps" : [{
                        "name" : "visitor with Id unknownShopperId_594 has no attributes",
                        "keyword" : "Given ",
                        "line" : 28
                    }, {
                        "name" : "the attribute \"ondivp\" has been defined",
                        "keyword" : "And ",
                        "line" : 29
                    }, {
                        "name" : "I PUT to /visitor/unknownShopperId_594:",
                        "keyword" : "When ",
                        "line" : 30,
                        "doc_string" : {
                            "value" : "\t{\n\t    \"Id\": \"unknownShopperId_594\",\n\t    \"Attributes\": [{\n\t        \"Name\": \"ondivp\",\n\t        \"Value\": \"B\",\n\t       \t\"StartDate\":\"Tomorrow\",\n\t\t\t\"EndDate\":\"Yesterday\"\n\t    }]\n\t}",
                            "line" : 31,
                            "content_type" : ""
                        }
                    }, {
                        "name" : "I expect to get an HTTP response code of 400",
                        "keyword" : "Then ",
                        "line" : 42
                    }, {
                        "name" : "I expect the following error response:",
                        "keyword" : "And ",
                        "line" : 43,
                        "doc_string" : {
                            "value" : "\t{\n\t\t\"Errors\":[\"End date should be after start date.\"]\n\t}",
                            "line" : 44,
                            "content_type" : ""
                        }
                    }, {
                        "result" : {
                            "duration" : 28017966,
                            "status" : "passed"
                        },
                        "name" : "visitor with id unknownShopperId_594 should have no attributes",
                        "keyword" : "And ",
                        "line" : 49,
                        "match" : {
                            "arguments" : [{
                                    "val" : "unknownShopperId_594",
                                    "offset" : 16
                                }
                            ],
                            "location" : "AttributeValueSteps.visitor_with_id_unknownShopperId_has_no_attributes(String)"
                        }
                    }
                ],
                "type" : "scenario"
            }, {
                "id" : "adding-invalid-attribute-values;adding-an-attribute-value-with-invalid-start-or-end-dates-should-return-http-400-and-attribute-shouldn\u0027t-be-stored.",
                "description" : "",
                "name" : "Adding an attribute value with invalid start or end dates should return HTTP 400 and attribute shouldn\u0027t be stored.",
                "keyword" : "Scenario",
                "line" : 51,
                "steps" : [{
                        "name" : "visitor with Id unknownShopperId_594 has no attributes",
                        "keyword" : "Given ",
                        "line" : 52
                    }, {
                        "name" : "the attribute \"ondivp\" has been defined",
                        "keyword" : "And ",
                        "line" : 53
                    }, {
                        "name" : "I PUT to /visitor/unknownShopperId_594:",
                        "keyword" : "When ",
                        "line" : 54,
                        "doc_string" : {
                            "value" : "\t{\n\t    \"Id\": \"unknownShopperId_594\",\n\t    \"Attributes\": [{\n\t        \"Name\": \"ondivp\",\n\t        \"Value\": \"C\",\n\t        \"StartDate\": \"12/35/2011 12:00\",\n\t        \"EndDate\": \"02/15/2012 18:00\"\n\t    }]\n\t}",
                            "line" : 55,
                            "content_type" : ""
                        }
                    }, {
                        "name" : "I expect to get an HTTP response code of 400",
                        "keyword" : "Then ",
                        "line" : 66
                    }, {
                        "name" : "I expect the following error response:",
                        "keyword" : "And ",
                        "line" : 67,
                        "doc_string" : {
                            "value" : "\t{\n\t    \"Errors\": [\"Invalid date value. 12/35/2011 12:00\"]\n\t}",
                            "line" : 68,
                            "content_type" : ""
                        }
                    }, {
                        "result" : {
                            "duration" : 28418633,
                            "status" : "passed"
                        },
                        "name" : "visitor with id unknownShopperId_594 should have no attributes",
                        "keyword" : "And ",
                        "line" : 73,
                        "match" : {
                            "arguments" : [{
                                    "val" : "unknownShopperId_594",
                                    "offset" : 16
                                }
                            ],
                            "location" : "AttributeValueSteps.visitor_with_id_unknownShopperId_has_no_attributes(String)"
                        }
                    }
                ],
                "type" : "scenario"
            }, {
                "id" : "adding-invalid-attribute-values;attempting-to-add-attribute-values-with-name-missing-should-return-http-400-and-attribute-shouldn\u0027t-be-stored.",
                "description" : "",
                "name" : "Attempting to add attribute values with name missing should return HTTP 400 and attribute shouldn\u0027t be stored.",
                "keyword" : "Scenario",
                "line" : 75,
                "steps" : [{
                        "name" : "visitor with Id unknownShopperId_594 has no attributes",
                        "keyword" : "Given ",
                        "line" : 76
                    }, {
                        "name" : "the attribute \"ondivp\" has been defined",
                        "keyword" : "And ",
                        "line" : 77
                    }, {
                        "name" : "I PUT to /visitor/unknownShopperId_594:",
                        "keyword" : "When ",
                        "line" : 78,
                        "doc_string" : {
                            "value" : "\t{\n\t    \"Attributes\": [{\n\t        \"Value\": \"C\",\n\t        \"StartDate\": \"12/15/2011 12:00\",\n\t        \"EndDate\": \"02/15/2012 18:00\"\n\t    }]\n\t}",
                            "line" : 79,
                            "content_type" : ""
                        }
                    }, {
                        "name" : "I expect to get an HTTP response code of 400",
                        "keyword" : "Then ",
                        "line" : 88
                    }, {
                        "name" : "I expect the following error response:",
                        "keyword" : "And ",
                        "line" : 89,
                        "doc_string" : {
                            "value" : "\t{\n\t    \"Errors\": [\"Attribute short name must be specified.\"]\n\t}",
                            "line" : 90,
                            "content_type" : ""
                        }
                    }, {
                        "result" : {
                            "duration" : 27286419,
                            "status" : "passed"
                        },
                        "name" : "visitor with id unknownShopperId_594 should have no attributes",
                        "keyword" : "And ",
                        "line" : 95,
                        "match" : {
                            "arguments" : [{
                                    "val" : "unknownShopperId_594",
                                    "offset" : 16
                                }
                            ],
                            "location" : "AttributeValueSteps.visitor_with_id_unknownShopperId_has_no_attributes(String)"
                        }
                    }
                ],
                "type" : "scenario"
            }, {
                "id" : "adding-invalid-attribute-values;attempting-to-add-attribute-values-with-value-missing-should-return-http-400-and-attribute-shouldn\u0027t-be-stored.",
                "description" : "",
                "name" : "Attempting to add attribute values with value missing should return HTTP 400 and attribute shouldn\u0027t be stored.",
                "keyword" : "Scenario",
                "line" : 97,
                "steps" : [{
                        "name" : "visitor with Id unknownShopperId_594 has no attributes",
                        "keyword" : "Given ",
                        "line" : 98
                    }, {
                        "name" : "the attribute \"ondivp\" has been defined",
                        "keyword" : "And ",
                        "line" : 99
                    }, {
                        "name" : "I PUT to /visitor/unknownShopperId_594:",
                        "keyword" : "When ",
                        "line" : 100,
                        "doc_string" : {
                            "value" : "\t{\n\t    \"Attributes\": [{\n\t        \"Name\": \"ondivp\",\n\t        \"StartDate\": \"12/15/2011 12:00\",\n\t        \"EndDate\": \"02/15/2012 18:00\"\n\t    }]\n\t}",
                            "line" : 101,
                            "content_type" : ""
                        }
                    }, {
                        "name" : "I expect to get an HTTP response code of 400",
                        "keyword" : "Then ",
                        "line" : 110
                    }, {
                        "name" : "I expect the following error response:",
                        "keyword" : "And ",
                        "line" : 111,
                        "doc_string" : {
                            "value" : "\t{\n\t    \"Errors\": [\"Attribute value must be specified.\"]\n\t}",
                            "line" : 112,
                            "content_type" : ""
                        }
                    }, {
                        "result" : {
                            "duration" : 29059864,
                            "status" : "passed"
                        },
                        "name" : "visitor with id unknownShopperId_594 should have no attributes",
                        "keyword" : "And ",
                        "line" : 117,
                        "match" : {
                            "arguments" : [{
                                    "val" : "unknownShopperId_594",
                                    "offset" : 16
                                }
                            ],
                            "location" : "AttributeValueSteps.visitor_with_id_unknownShopperId_has_no_attributes(String)"
                        }
                    }
                ],
                "type" : "scenario"
            }
        ],
        "uri" : "features\\adding_invalid_attribute_values.feature"
    }, {
        "id" : "adding-valid-attribute-values",
        "description" : "",
        "name" : "Adding valid attribute values",
        "keyword" : "Feature",
        "line" : 1,
        "elements" : [{
                "id" : "adding-valid-attribute-values;adding-an-attribute-value-with-valid-start-and-end-dates-should-return-http-204-and-store-the-attribute-value.",
                "description" : "",
                "name" : "Adding an attribute value with valid start and end dates should return HTTP 204 and store the attribute value.",
                "keyword" : "Scenario",
                "line" : 3,
                "steps" : [{
                        "name" : "visitor with Id unknownShopperId_594 has no attributes",
                        "keyword" : "Given ",
                        "line" : 4
                    }, {
                        "name" : "the attribute \"ondivp\" has been defined",
                        "keyword" : "And ",
                        "line" : 5
                    }, {
                        "name" : "I PUT to /visitor/unknownShopperId_594:",
                        "keyword" : "When ",
                        "line" : 6,
                        "doc_string" : {
                            "value" : "\t{\r\n\t    \"Id\": \"unknownShopperId_594\",\r\n\t    \"Attributes\": [{\r\n\t        \"Name\": \"ondivp\",\r\n\t        \"Value\": \"B\",\r\n\t        \"StartDate\": \"Yesterday\",\r\n\t        \"EndDate\": \"Tomorrow\"\r\n\t    }]\r\n\t}",
                            "line" : 7,
                            "content_type" : ""
                        }
                    }, {
                        "name" : "I expect to get an HTTP response code of 204",
                        "keyword" : "Then ",
                        "line" : 18
                    }, {
                        "result" : {
                            "duration" : 6666018,
                            "status" : "passed"
                        },
                        "name" : "visitor with id unknownShopperId_594 should have attributes",
                        "keyword" : "And ",
                        "line" : 19,
                        "match" : {
                            "arguments" : [{
                                    "val" : "unknownShopperId_594",
                                    "offset" : 16
                                }
                            ],
                            "location" : "AttributeValueSteps.visitor_with_Id_unknown_should_have_attributes(String,DataTable)"
                        },
                        "rows" : [{
                                "cells" : ["Name", "Value", "StartDate", "EndDate"],
                                "line" : 20
                            }, {
                                "cells" : ["ondivp", "B", "Yesterday", "Tomorrow"],
                                "line" : 21
                            }
                        ]
                    }
                ],
                "type" : "scenario"
            }, {
                "id" : "adding-valid-attribute-values;adding-an-attribute-value-without-dates-should-store-it-with-attribute-definitions-dates-and-return-http-204.",
                "description" : "",
                "name" : "Adding an attribute value without dates should store it with attribute definitions dates and return HTTP 204.",
                "keyword" : "Scenario",
                "line" : 23,
                "steps" : [{
                        "name" : "visitor with Id unknownShopperId_594 has no attributes",
                        "keyword" : "Given ",
                        "line" : 24
                    }, {
                        "name" : "the attribute \"ondivp\" has been defined as",
                        "keyword" : "And ",
                        "line" : 25,
                        "rows" : [{
                                "cells" : ["Description", "Name", "Short Name", "Secure", "StartDate", "EndDate", "Active"],
                                "line" : 26
                            }, {
                                "cells" : ["Attribute Description", "Attribute Name", "ondivp", "false", "12/15/2012 06:00", "01/01/2014 18:00", "true"],
                                "line" : 27
                            }
                        ]
                    }, {
                        "name" : "I PUT to /visitor/unknownShopperId_594:",
                        "keyword" : "When ",
                        "line" : 28,
                        "doc_string" : {
                            "value" : "{\t\"Id\": \"unknownShopperId_594\",\r\n\t\"Attributes\":\r\n\t[{\"Name\":\"ondivp\",\r\n\t\"Value\":\"B\",\r\n\t\"StartDate\":\"\",\r\n\t\"EndDate\":\"\"}]}",
                            "line" : 29,
                            "content_type" : ""
                        }
                    }, {
                        "name" : "I expect to get an HTTP response code of 204",
                        "keyword" : "Then ",
                        "line" : 37
                    }, {
                        "result" : {
                            "duration" : 3665530,
                            "status" : "passed"
                        },
                        "name" : "visitor with id unknownShopperId_594 should have attributes",
                        "keyword" : "And ",
                        "line" : 38,
                        "match" : {
                            "arguments" : [{
                                    "val" : "unknownShopperId_594",
                                    "offset" : 16
                                }
                            ],
                            "location" : "AttributeValueSteps.visitor_with_Id_unknown_should_have_attributes(String,DataTable)"
                        },
                        "rows" : [{
                                "cells" : ["Name", "Value", "StartDate", "EndDate"],
                                "line" : 39
                            }, {
                                "cells" : ["ondivp", "B", "12/15/2012 06:00", "01/01/2014 18:00"],
                                "line" : 40
                            }
                        ]
                    }
                ],
                "type" : "scenario"
            }, {
                "id" : "adding-valid-attribute-values;fully-qualified-visitor-id-has-not-specific-format-yet",
                "description" : "",
                "name" : "Fully qualified visitor id has not specific format yet",
                "keyword" : "Scenario",
                "line" : 44,
                "steps" : [{
                        "name" : "visitor with Id aVisitorId has no attributes",
                        "keyword" : "Given ",
                        "line" : 45
                    }, {
                        "name" : "the attribute \"ondivp\" has been defined",
                        "keyword" : "And ",
                        "line" : 46
                    }, {
                        "name" : "I PUT to /visitor/aVisitorId:",
                        "keyword" : "When ",
                        "line" : 47,
                        "doc_string" : {
                            "value" : "\t{\r\n\t    \"Attributes\": [{\r\n\t        \"Name\": \"ondivp\",\r\n\t        \"Value\": \"B\",\r\n\t        \"StartDate\": \"Yesterday\",\r\n\t        \"EndDate\": \"Tomorrow\"\r\n\t    }]\r\n\t}",
                            "line" : 48,
                            "content_type" : ""
                        }
                    }, {
                        "name" : "I expect to get an HTTP response code of 204",
                        "keyword" : "Then ",
                        "line" : 58
                    }, {
                        "result" : {
                            "duration" : 3238179,
                            "status" : "passed"
                        },
                        "name" : "visitor with id aVisitorId should have attributes",
                        "keyword" : "And ",
                        "line" : 59,
                        "match" : {
                            "arguments" : [{
                                    "val" : "aVisitorId",
                                    "offset" : 16
                                }
                            ],
                            "location" : "AttributeValueSteps.visitor_with_Id_unknown_should_have_attributes(String,DataTable)"
                        },
                        "rows" : [{
                                "cells" : ["Name", "Value", "StartDate", "EndDate"],
                                "line" : 60
                            }, {
                                "cells" : ["ondivp", "B", "Yesterday", "Tomorrow"],
                                "line" : 61
                            }
                        ]
                    }
                ],
                "type" : "scenario"
            }, {
                "id" : "adding-valid-attribute-values;updating-attribute-values-for-a-specific-user",
                "description" : "",
                "name" : "Updating attribute values for a specific user",
                "keyword" : "Scenario",
                "line" : 63,
                "steps" : [{
                        "name" : "the attribute \"ondivp\" has been defined",
                        "keyword" : "Given ",
                        "line" : 64
                    }, {
                        "name" : "the attribute \"onjpdivp\" has been defined",
                        "keyword" : "And ",
                        "line" : 65
                    }, {
                        "name" : "visitor with Id unknownShopperId_1234 has attributes:",
                        "keyword" : "And ",
                        "line" : 66,
                        "rows" : [{
                                "cells" : ["Name", "Value", "StartDate", "EndDate"],
                                "line" : 67
                            }, {
                                "cells" : ["ondivp", "C", "Yesterday", "Tomorrow"],
                                "line" : 68
                            }, {
                                "cells" : ["onjpdivp", "D", "Yesterday", "Tomorrow"],
                                "line" : 69
                            }
                        ]
                    }, {
                        "name" : "I PUT to /visitor/unknownShopperId_1234:",
                        "keyword" : "When ",
                        "line" : 70,
                        "doc_string" : {
                            "value" : "\t{\r\n\t    \"Id\": \"unknownShopperId_1234\",\r\n\t    \"Attributes\": [{\r\n\t        \"Name\": \"ondivp\",\r\n\t        \"Value\": \"A\",\r\n\t        \"StartDate\": \"12/15/2012 06:00\",\r\n\t        \"EndDate\": \"01/01/2014 18:00\"\r\n\t    }]\r\n\t}",
                            "line" : 71,
                            "content_type" : ""
                        }
                    }, {
                        "name" : "I expect to get an HTTP response code of 204",
                        "keyword" : "Then ",
                        "line" : 82
                    }, {
                        "result" : {
                            "duration" : 7344197,
                            "status" : "passed"
                        },
                        "name" : "visitor with id unknownShopperId_1234 should have attributes",
                        "keyword" : "And ",
                        "line" : 83,
                        "match" : {
                            "arguments" : [{
                                    "val" : "unknownShopperId_1234",
                                    "offset" : 16
                                }
                            ],
                            "location" : "AttributeValueSteps.visitor_with_Id_unknown_should_have_attributes(String,DataTable)"
                        },
                        "rows" : [{
                                "cells" : ["Name", "Value", "StartDate", "EndDate"],
                                "line" : 84
                            }, {
                                "cells" : ["ondivp", "A", "12/15/2012 06:00", "01/01/2014 18:00"],
                                "line" : 85
                            }, {
                                "cells" : ["onjpdivp", "D", "Yesterday", "Tomorrow"],
                                "line" : 86
                            }
                        ]
                    }
                ],
                "type" : "scenario"
            }
        ],
        "uri" : "features\\adding_valid_attribute_values.feature"
    }, {
        "id" : "defining-invalid-attributes",
        "description" : "",
        "name" : "Defining invalid attributes",
        "keyword" : "Feature",
        "line" : 1,
        "elements" : [{
                "id" : "defining-invalid-attributes;defining-an-attribute-with-start-date-after-end-date-should-return-400-with-proper-error-message",
                "description" : "",
                "name" : "Defining an attribute with start date after end date should return 400 with proper error message",
                "keyword" : "Scenario",
                "line" : 3,
                "steps" : [{
                        "name" : "I PUT to /attribute/ondivp:",
                        "keyword" : "When ",
                        "line" : 4,
                        "doc_string" : {
                            "value" : "\t{\n\t    \"Desc\": \"description is described\",\n\t    \"Name\": \"name is named\",\n\t    \"IsSecure\": false,\n\t    \"StartDate\": \"12/15/2014 06:00\",\n\t    \"EndDate\": \"01/01/2012 18:00\",\n\t    \"IsActive\": true\n\t}",
                            "line" : 5,
                            "content_type" : ""
                        }
                    }, {
                        "name" : "I expect to get an HTTP response code of 400",
                        "keyword" : "Then ",
                        "line" : 15
                    }, {
                        "result" : {
                            "duration" : 256574,
                            "status" : "passed"
                        },
                        "name" : "I expect the following error response:",
                        "keyword" : "And ",
                        "line" : 16,
                        "doc_string" : {
                            "value" : "\t{\n\t    \"Errors\": [\"End date must be after start date.\"]\n\t}",
                            "line" : 17,
                            "content_type" : ""
                        },
                        "match" : {
                            "location" : "HttpSteps.I_expect_the_following_error_response(String)"
                        }
                    }
                ],
                "type" : "scenario"
            }, {
                "id" : "defining-invalid-attributes;defining-an-attribute-with-invalid-start-or-end-date-should-return-400-with-proper-error-message",
                "description" : "",
                "name" : "Defining an attribute with invalid start or end date should return 400 with proper error message",
                "keyword" : "Scenario",
                "line" : 22,
                "steps" : [{
                        "name" : "I PUT to /attribute/ondivp:",
                        "keyword" : "When ",
                        "line" : 23,
                        "doc_string" : {
                            "value" : "\t{\n\t    \"Desc\": \"description is described\",\n\t    \"Name\": \"name is named\",\n\t    \"IsSecure\": false,\n\t    \"StartDate\": \"12/35/2011 06:00\",\n\t    \"EndDate\": \"01/01/2012 18:00\",\n\t    \"IsActive\": true\n\t}",
                            "line" : 24,
                            "content_type" : ""
                        }
                    }, {
                        "name" : "I expect to get an HTTP response code of 400",
                        "keyword" : "Then ",
                        "line" : 34
                    }, {
                        "result" : {
                            "duration" : 234818,
                            "status" : "passed"
                        },
                        "name" : "I expect the following error response:",
                        "keyword" : "And ",
                        "line" : 35,
                        "doc_string" : {
                            "value" : "\t{\n\t    \"Errors\": [\"Invalid date value. 12/35/2011 06:00\"]\n\t}",
                            "line" : 36,
                            "content_type" : ""
                        },
                        "match" : {
                            "location" : "HttpSteps.I_expect_the_following_error_response(String)"
                        }
                    }
                ],
                "type" : "scenario"
            }, {
                "id" : "defining-invalid-attributes;defining-an-attribute-with-blank-description-field-should-return-400-with-proper-error-message",
                "description" : "",
                "name" : "Defining an attribute with blank description field should return 400 with proper error message",
                "keyword" : "Scenario",
                "line" : 42,
                "steps" : [{
                        "name" : "I PUT to /attribute/ondivp:",
                        "keyword" : "When ",
                        "line" : 43,
                        "doc_string" : {
                            "value" : "\t{\n\t    \"Desc\": \"\",\n\t    \"Name\": \"name is named\",\n\t    \"IsSecure\": false,\n\t    \"StartDate\": \"12/15/2012 06:00\",\n\t    \"EndDate\": \"01/01/2014 18:00\",\n\t    \"IsActive\": true\n\t}",
                            "line" : 44,
                            "content_type" : ""
                        }
                    }, {
                        "name" : "I expect to get an HTTP response code of 400",
                        "keyword" : "Then ",
                        "line" : 54
                    }, {
                        "result" : {
                            "duration" : 482360,
                            "status" : "passed"
                        },
                        "name" : "I expect the following error response:",
                        "keyword" : "And ",
                        "line" : 55,
                        "doc_string" : {
                            "value" : "\t{\n\t\t\"Errors\":[\"Attribute description must be specified.\"]\n\t}",
                            "line" : 56,
                            "content_type" : ""
                        },
                        "match" : {
                            "location" : "HttpSteps.I_expect_the_following_error_response(String)"
                        }
                    }
                ],
                "type" : "scenario"
            }, {
                "id" : "defining-invalid-attributes;defining-an-attribute-with-blank-name-field-should-return-400-with-proper-error-message",
                "description" : "",
                "name" : "Defining an attribute with blank name field should return 400 with proper error message",
                "keyword" : "Scenario",
                "line" : 63,
                "steps" : [{
                        "name" : "I PUT to /attribute/ondivp:",
                        "keyword" : "When ",
                        "line" : 64,
                        "doc_string" : {
                            "value" : "\t{\n\t    \"Desc\": \"Description is described\",\n\t    \"Name\": \"\",\n\t    \"IsSecure\": false,\n\t    \"StartDate\": \"12/15/2012 06:00\",\n\t    \"EndDate\": \"01/01/2014 18:00\",\n\t    \"IsActive\": true\n\t}",
                            "line" : 65,
                            "content_type" : ""
                        }
                    }, {
                        "name" : "I expect to get an HTTP response code of 400",
                        "keyword" : "Then ",
                        "line" : 75
                    }, {
                        "result" : {
                            "duration" : 240564,
                            "status" : "passed"
                        },
                        "name" : "I expect the following error response:",
                        "keyword" : "And ",
                        "line" : 76,
                        "doc_string" : {
                            "value" : "\t{\n\t\t\"Errors\":[\"Attribute name must be specified.\"]\n\t}",
                            "line" : 77,
                            "content_type" : ""
                        },
                        "match" : {
                            "location" : "HttpSteps.I_expect_the_following_error_response(String)"
                        }
                    }
                ],
                "type" : "scenario"
            }, {
                "id" : "defining-invalid-attributes;defining-attribute-without-issecure-flag-should-return-400-with-proper-error-message",
                "description" : "",
                "name" : "Defining attribute without isSecure flag should return 400 with proper error message",
                "keyword" : "Scenario",
                "line" : 84,
                "steps" : [{
                        "name" : "I PUT to /attribute/ondivp:",
                        "keyword" : "When ",
                        "line" : 85,
                        "doc_string" : {
                            "value" : "\t{\n\t    \"Desc\": \"This is the Old Navy division preference attribute generated by big data used by Ecom with values A, B, C \",\n\t    \"Name\": \"Old Navy Division Preference\",\n\t    \"StartDate\": \"11/02/2013 06:30\",\n\t    \"EndDate\": \"11/05/2013 06:30\",\n\t    \"IsActive\": true\n\t}",
                            "line" : 86,
                            "content_type" : ""
                        }
                    }, {
                        "name" : "I expect to get an HTTP response code of 400",
                        "keyword" : "Then ",
                        "line" : 95
                    }, {
                        "result" : {
                            "duration" : 508634,
                            "status" : "passed"
                        },
                        "name" : "I expect the following error response:",
                        "keyword" : "And ",
                        "line" : 96,
                        "doc_string" : {
                            "value" : "\t{\n\t\t\"Errors\":[\"Attribute secure flag must be specified.\"]\n\t}",
                            "line" : 97,
                            "content_type" : ""
                        },
                        "match" : {
                            "location" : "HttpSteps.I_expect_the_following_error_response(String)"
                        }
                    }
                ],
                "type" : "scenario"
            }, {
                "id" : "defining-invalid-attributes;defining-attribute-without-isactive-flag-should-return-400-with-proper-error-message",
                "description" : "",
                "name" : "Defining attribute without isActive flag should return 400 with proper error message",
                "keyword" : "Scenario",
                "line" : 104,
                "steps" : [{
                        "name" : "I PUT to /attribute/ondivp:",
                        "keyword" : "When ",
                        "line" : 105,
                        "doc_string" : {
                            "value" : "\t{\n\t    \"Desc\": \"This is the Old Navy division preference attribute generated by big data used by Ecom with values A, B, C \",\n\t    \"Name\": \"Old Navy Division Preference\",\n\t    \"StartDate\": \"11/03/2013 06:30\",\n\t    \"EndDate\": \"11/06/2013 06:30\",\n\t    \"IsSecure\": false\n\t}",
                            "line" : 106,
                            "content_type" : ""
                        }
                    }, {
                        "name" : "I expect to get an HTTP response code of 400",
                        "keyword" : "Then ",
                        "line" : 115
                    }, {
                        "result" : {
                            "duration" : 267659,
                            "status" : "passed"
                        },
                        "name" : "I expect the following error response:",
                        "keyword" : "And ",
                        "line" : 116,
                        "doc_string" : {
                            "value" : "\t{\n\t    \"Errors\": [\"Attribute active flag must be specified.\"]\n\t}",
                            "line" : 117,
                            "content_type" : ""
                        },
                        "match" : {
                            "location" : "HttpSteps.I_expect_the_following_error_response(String)"
                        }
                    }
                ],
                "type" : "scenario"
            }
        ],
        "uri" : "features\\defining_invalid_attributes.feature"
    }, {
        "id" : "defining-valid-attributes",
        "description" : "",
        "name" : "Defining valid attributes",
        "keyword" : "Feature",
        "line" : 1,
        "elements" : [{
                "id" : "defining-valid-attributes;defining-a-new-attribute-with-all-fields",
                "description" : "",
                "name" : "Defining a new attribute with all fields",
                "keyword" : "Scenario",
                "line" : 3,
                "steps" : [{
                        "name" : "I PUT to /attribute/ondivp:",
                        "keyword" : "When ",
                        "line" : 4,
                        "doc_string" : {
                            "value" : "\t{\r\n\t    \"Desc\": \"इ लव ब्लूबेरी डेनिश\",\r\n\t    \"Name\": \"ールドネイビー課の\",\r\n\t    \"IsSecure\": false,\r\n\t    \"StartDate\": \"12/15/2012 06:00\",\r\n\t    \"EndDate\": \"01/01/2014 18:00\",\r\n\t    \"IsActive\": true\r\n\t}",
                            "line" : 5,
                            "content_type" : ""
                        }
                    }, {
                        "name" : "I expect to get an HTTP response code of 204",
                        "keyword" : "Then ",
                        "line" : 15
                    }, {
                        "result" : {
                            "duration" : 4081387,
                            "status" : "passed"
                        },
                        "name" : "attribute \"ondivp\" should be defined with the following properties:",
                        "keyword" : "And ",
                        "line" : 16,
                        "match" : {
                            "arguments" : [{
                                    "val" : "ondivp",
                                    "offset" : 11
                                }
                            ],
                            "location" : "AttributeDefinitionSteps.attribute_should_be_defined_with_the_following_properties(String,DataTable)"
                        },
                        "rows" : [{
                                "cells" : ["Description", "Name", "Short Name", "Secure", "StartDate", "EndDate", "Active"],
                                "line" : 17
                            }, {
                                "cells" : ["इ लव ब्लूबेरी डेनिश", "ールドネイビー課の", "ondivp", "false", "12/15/2012 06:00", "01/01/2014 18:00", "true"],
                                "line" : 18
                            }
                        ]
                    }
                ],
                "type" : "scenario"
            }, {
                "id" : "defining-valid-attributes;defining-a-new-attribute-without-start-and-end-date-should-use-default-dates",
                "description" : "",
                "name" : "Defining a new attribute without start and end date should use default dates",
                "keyword" : "Scenario",
                "line" : 20,
                "steps" : [{
                        "name" : "I PUT to /attribute/ondivp:",
                        "keyword" : "When ",
                        "line" : 21,
                        "doc_string" : {
                            "value" : "\t{\r\n\t    \"Desc\": \"I love blueberry danish\",\r\n\t    \"Name\": \"old navy div pref\",\r\n\t    \"IsSecure\": false,\r\n\t    \"IsActive\": true\r\n\t}",
                            "line" : 22,
                            "content_type" : ""
                        }
                    }, {
                        "name" : "I expect to get an HTTP response code of 204",
                        "keyword" : "Then ",
                        "line" : 30
                    }, {
                        "result" : {
                            "duration" : 3864632,
                            "status" : "passed"
                        },
                        "name" : "attribute \"ondivp\" should be defined with the following properties:",
                        "keyword" : "And ",
                        "line" : 31,
                        "match" : {
                            "arguments" : [{
                                    "val" : "ondivp",
                                    "offset" : 11
                                }
                            ],
                            "location" : "AttributeDefinitionSteps.attribute_should_be_defined_with_the_following_properties(String,DataTable)"
                        },
                        "rows" : [{
                                "cells" : ["Description", "Name", "Short name", "Secure", "StartDate", "EndDate", "Active"],
                                "line" : 32
                            }, {
                                "cells" : ["I love blueberry danish", "old navy div pref", "ondivp", "false", "Today", "01/01/2200 00:00", "true"],
                                "line" : 33
                            }
                        ]
                    }
                ],
                "type" : "scenario"
            }, {
                "id" : "defining-valid-attributes;putting-into-an-existing-attribute-should-override-all-fields",
                "description" : "",
                "name" : "Putting into an existing attribute should override all fields",
                "keyword" : "Scenario",
                "line" : 36,
                "steps" : [{
                        "name" : "the attribute \"ondivp\" has been defined as",
                        "keyword" : "Given ",
                        "line" : 37,
                        "rows" : [{
                                "cells" : ["Description", "Name", "Short name", "Secure", "StartDate", "EndDate", "Active"],
                                "line" : 38
                            }, {
                                "cells" : ["I love blueberry danish", "old navy div pref", "ondivp", "true", "Today", "01/01/2200 00:00", "false"],
                                "line" : 39
                            }
                        ]
                    }, {
                        "name" : "I PUT to /attribute/ondivp:",
                        "keyword" : "When ",
                        "line" : 40,
                        "doc_string" : {
                            "value" : "\t{\r\n\t    \"Desc\": \"I hate blueberry danish\",\r\n\t    \"Name\": \"sad old navy div pref\",\r\n\t    \"StartDate\": \"11/03/2014 06:30\",\r\n\t    \"EndDate\": \"11/06/2015 06:30\",\r\n\t    \"IsSecure\": false,\r\n\t    \"IsActive\": true\r\n\t}",
                            "line" : 41,
                            "content_type" : ""
                        }
                    }, {
                        "name" : "I expect to get an HTTP response code of 204",
                        "keyword" : "Then ",
                        "line" : 51
                    }, {
                        "result" : {
                            "duration" : 4216037,
                            "status" : "passed"
                        },
                        "name" : "attribute \"ondivp\" should be defined with the following properties:",
                        "keyword" : "And ",
                        "line" : 52,
                        "match" : {
                            "arguments" : [{
                                    "val" : "ondivp",
                                    "offset" : 11
                                }
                            ],
                            "location" : "AttributeDefinitionSteps.attribute_should_be_defined_with_the_following_properties(String,DataTable)"
                        },
                        "rows" : [{
                                "cells" : ["Description", "Name", "Short name", "Secure", "StartDate", "EndDate", "Active"],
                                "line" : 53
                            }, {
                                "cells" : ["I hate blueberry danish", "sad old navy div pref", "ondivp", "false", "11/03/2014 06:30", "11/06/2015 06:30", "true"],
                                "line" : 54
                            }
                        ]
                    }
                ],
                "type" : "scenario"
            }
        ],
        "uri" : "features\\defining_valid_attributes.feature"
    }, {
        "id" : "retrieving-attribute-values",
        "description" : "",
        "name" : "Retrieving attribute values",
        "keyword" : "Feature",
        "line" : 1,
        "elements" : [{
                "id" : "retrieving-attribute-values;retrieving-visitor-attribute-values-for-multiple-ids",
                "description" : "",
                "name" : "Retrieving visitor attribute values for multiple IDs",
                "keyword" : "Scenario",
                "line" : 3,
                "steps" : [{
                        "name" : "visitor with Id unknownShopperId_1234 has attributes:",
                        "keyword" : "Given ",
                        "line" : 4,
                        "rows" : [{
                                "cells" : ["Name", "Value", "StartDate", "EndDate"],
                                "line" : 5
                            }, {
                                "cells" : ["ondivp", "C", "Yesterday", "Tomorrow"],
                                "line" : 6
                            }, {
                                "cells" : ["onjpdivp", "D", "Yesterday", "Tomorrow"],
                                "line" : 7
                            }
                        ]
                    }, {
                        "name" : "visitor with Id cust_3456 has attributes:",
                        "keyword" : "And ",
                        "line" : 8,
                        "rows" : [{
                                "cells" : ["Name", "Value", "StartDate", "EndDate"],
                                "line" : 9
                            }, {
                                "cells" : ["onjpdivp", "F", "Yesterday", "Tomorrow"],
                                "line" : 10
                            }
                        ]
                    }, {
                        "name" : "I request GET /visitor/unknownShopperId_1234,cust_3456",
                        "keyword" : "When ",
                        "line" : 11
                    }, {
                        "result" : {
                            "duration" : 5787916,
                            "status" : "passed"
                        },
                        "name" : "I expect the following visitor attribute response:",
                        "keyword" : "Then ",
                        "line" : 12,
                        "doc_string" : {
                            "value" : "    [{\n        \"Id\": \"unknownShopperId_1234\",\n        \"Attributes\": [{\n            \"Name\": \"ondivp\",\n            \"Value\": \"C\",\n            \"StartDate\": \"Yesterday\",\n            \"EndDate\": \"Tomorrow\"\n        }, {\n            \"Name\": \"onjpdivp\",\n            \"Value\": \"D\",\n            \"StartDate\": \"Yesterday\",\n            \"EndDate\": \"Tomorrow\"\n        }]\n    }, {\n        \"Id\": \"cust_3456\",\n        \"Attributes\": [{\n            \"Name\": \"onjpdivp\",\n            \"Value\": \"F\",\n            \"StartDate\": \"Yesterday\",\n            \"EndDate\": \"Tomorrow\"\n        }]\n    }]       ",
                            "line" : 13,
                            "content_type" : ""
                        },
                        "match" : {
                            "location" : "AttributeValueSteps.I_expect_the_following_json_response(String)"
                        }
                    }
                ],
                "type" : "scenario"
            }, {
                "id" : "retrieving-attribute-values;retrieving-visitor-attribute-values-for-specified-attribute-short-names",
                "description" : "",
                "name" : "Retrieving visitor attribute values for specified attribute short names",
                "keyword" : "Scenario",
                "line" : 38,
                "steps" : [{
                        "name" : "visitor with Id unknownShopperId_1234 has attributes:",
                        "keyword" : "Given ",
                        "line" : 39,
                        "rows" : [{
                                "cells" : ["Name", "Value", "StartDate", "EndDate"],
                                "line" : 40
                            }, {
                                "cells" : ["ondivp", "C", "Yesterday", "Tomorrow"],
                                "line" : 41
                            }, {
                                "cells" : ["onjpdivp", "D", "Yesterday", "Tomorrow"],
                                "line" : 42
                            }, {
                                "cells" : ["brdivp", "E", "Yesterday", "Tomorrow"],
                                "line" : 43
                            }
                        ]
                    }, {
                        "name" : "I request GET /visitor/unknownShopperId_1234?attr\u003dondivp,brdivp,brjpdivp",
                        "keyword" : "When ",
                        "line" : 44
                    }, {
                        "result" : {
                            "duration" : 1759077,
                            "status" : "passed"
                        },
                        "name" : "I expect the following visitor attribute response:",
                        "keyword" : "Then ",
                        "line" : 45,
                        "doc_string" : {
                            "value" : "[{\n\"Id\": \"unknownShopperId_1234\",\n\"Attributes\": [{\n    \"Name\": \"ondivp\",\n    \"Value\": \"C\",\n    \"StartDate\": \"Yesterday\",\n    \"EndDate\": \"Tomorrow\"\n}, {\n    \"Name\": \"brdivp\",\n    \"Value\": \"E\",\n    \"StartDate\": \"Yesterday\",\n    \"EndDate\": \"Tomorrow\"\n}]\n}]         ",
                            "line" : 46,
                            "content_type" : ""
                        },
                        "match" : {
                            "location" : "AttributeValueSteps.I_expect_the_following_json_response(String)"
                        }
                    }
                ],
                "type" : "scenario"
            }, {
                "id" : "retrieving-attribute-values;retrieving-active-and-unexpired-visitor-attribute-values-with-preview-date",
                "description" : "",
                "name" : "Retrieving active and unexpired visitor attribute values with preview date",
                "keyword" : "Scenario",
                "line" : 63,
                "steps" : [{
                        "name" : "visitor with Id unknownShopperId_1234 has attributes:",
                        "keyword" : "Given ",
                        "line" : 64,
                        "rows" : [{
                                "cells" : ["Name", "Value", "Active", "StartDate", "EndDate"],
                                "line" : 65
                            }, {
                                "cells" : ["still", "C", "true", "Yesterday", "Yesterday"],
                                "line" : 66
                            }, {
                                "cells" : ["a-", "C", "true", "Yesterday", "Today"],
                                "line" : 67
                            }, {
                                "cells" : ["live", "C", "false", "Yesterday", "Tomorrow"],
                                "line" : 68
                            }, {
                                "cells" : ["extinct", "E", "true", "Today", "Today"],
                                "line" : 69
                            }, {
                                "cells" : ["dormant", "E", "true", "Today", "Tomorrow"],
                                "line" : 70
                            }, {
                                "cells" : ["hidden", "E", "true", "Tomorrow", "Tomorrow"],
                                "line" : 71
                            }
                        ]
                    }, {
                        "name" : "I request GET /visitor/unknownShopperId_1234?previewDate\u003dYesterday",
                        "keyword" : "When ",
                        "line" : 72
                    }, {
                        "result" : {
                            "duration" : 1484849,
                            "status" : "passed"
                        },
                        "name" : "I expect the following visitor attribute response:",
                        "keyword" : "Then ",
                        "line" : 73,
                        "doc_string" : {
                            "value" : "       [{\n\t    \"Id\": \"unknownShopperId_1234\",\n\t    \"Attributes\": [{\n\t        \"Name\": \"still\",\n\t        \"Value\": \"C\",\n\t        \"StartDate\": \"Yesterday\",\n\t        \"EndDate\": \"Yesterday\"\n\t    }, {\n\t        \"Name\": \"a-\",\n\t        \"Value\": \"C\",\n\t        \"StartDate\": \"Yesterday\",\n\t        \"EndDate\": \"Today\"\n\t    }]\n\t}]",
                            "line" : 74,
                            "content_type" : ""
                        },
                        "match" : {
                            "location" : "AttributeValueSteps.I_expect_the_following_json_response(String)"
                        }
                    }
                ],
                "type" : "scenario"
            }, {
                "id" : "retrieving-attribute-values;retrieving-active-and-unexpired-visitor-attribute-values-without-specifying-preview-date",
                "description" : "",
                "name" : "Retrieving active and unexpired visitor attribute values without specifying preview date",
                "keyword" : "Scenario",
                "line" : 91,
                "steps" : [{
                        "name" : "visitor with Id unknownShopperId_1234 has attributes:",
                        "keyword" : "Given ",
                        "line" : 92,
                        "rows" : [{
                                "cells" : ["Name", "Value", "Active", "StartDate", "EndDate"],
                                "line" : 93
                            }, {
                                "cells" : ["still", "C", "true", "Yesterday", "Today"],
                                "line" : 94
                            }, {
                                "cells" : ["a-", "C", "true", "Today", "Tomorrow"],
                                "line" : 95
                            }, {
                                "cells" : ["live", "C", "true", "Today", "Today"],
                                "line" : 96
                            }, {
                                "cells" : ["extinct", "E", "true", "Yesterday", "Yesterday"],
                                "line" : 97
                            }, {
                                "cells" : ["dormant", "E", "true", "Tomorrow", "Tomorrow"],
                                "line" : 98
                            }, {
                                "cells" : ["hidden", "E", "false", "Yesterday", "Tomorrow"],
                                "line" : 99
                            }
                        ]
                    }, {
                        "name" : "I request GET /visitor/unknownShopperId_1234",
                        "keyword" : "When ",
                        "line" : 100
                    }, {
                        "result" : {
                            "duration" : 1395356,
                            "status" : "passed"
                        },
                        "name" : "I expect the following visitor attribute response:",
                        "keyword" : "Then ",
                        "line" : 101,
                        "doc_string" : {
                            "value" : "      [{\n    \"Id\": \"unknownShopperId_1234\",\n    \"Attributes\": [{\n        \"Name\": \"still\",\n        \"Value\": \"C\",\n        \"StartDate\": \"Yesterday\",\n        \"EndDate\": \"Today\"\n    }, {\n        \"Name\": \"a-\",\n        \"Value\": \"C\",\n        \"StartDate\": \"Today\",\n        \"EndDate\": \"Tomorrow\"\n    }, {\n        \"Name\": \"live\",\n        \"Value\": \"C\",\n        \"StartDate\": \"Today\",\n        \"EndDate\": \"Today\"\n    }]\n}]",
                            "line" : 102,
                            "content_type" : ""
                        },
                        "match" : {
                            "location" : "AttributeValueSteps.I_expect_the_following_json_response(String)"
                        }
                    }
                ],
                "type" : "scenario"
            }, {
                "id" : "retrieving-attribute-values;retrieving-visitor-attribute-values",
                "description" : "",
                "name" : "Retrieving visitor attribute values",
                "keyword" : "Scenario",
                "line" : 124,
                "steps" : [{
                        "name" : "visitor with Id unknownShopperId_1234 has attributes:",
                        "keyword" : "Given ",
                        "line" : 125,
                        "rows" : [{
                                "cells" : ["Name", "Value", "StartDate", "EndDate"],
                                "line" : 126
                            }, {
                                "cells" : ["ondivp", "C", "Yesterday", "Tomorrow"],
                                "line" : 127
                            }, {
                                "cells" : ["onjpdivp", "D", "Yesterday", "Tomorrow"],
                                "line" : 128
                            }
                        ]
                    }, {
                        "name" : "I request GET /visitor/unknownShopperId_1234",
                        "keyword" : "When ",
                        "line" : 129
                    }, {
                        "result" : {
                            "duration" : 1086646,
                            "status" : "passed"
                        },
                        "name" : "I expect the following visitor attribute response:",
                        "keyword" : "Then ",
                        "line" : 130,
                        "doc_string" : {
                            "value" : "    [{\n \"Id\": \"unknownShopperId_1234\",\n \"Attributes\": [{\n     \"Name\": \"ondivp\",\n     \"Value\": \"C\",\n     \"StartDate\": \"Yesterday\",\n     \"EndDate\": \"Tomorrow\"\n }, {\n     \"Name\": \"onjpdivp\",\n     \"Value\": \"D\",\n     \"StartDate\": \"Yesterday\",\n     \"EndDate\": \"Tomorrow\"\n }]\n}]",
                            "line" : 131,
                            "content_type" : ""
                        },
                        "match" : {
                            "location" : "AttributeValueSteps.I_expect_the_following_json_response(String)"
                        }
                    }
                ],
                "type" : "scenario"
            }, {
                "id" : "retrieving-attribute-values;retrieving-a-visitor-attribute-value-for-visitor-with-no-attribute",
                "description" : "",
                "name" : "Retrieving a visitor attribute value for visitor with no attribute",
                "keyword" : "Scenario",
                "line" : 148,
                "steps" : [{
                        "name" : "visitor with Id unknownShopperId_9999 has no attributes",
                        "keyword" : "Given ",
                        "line" : 149
                    }, {
                        "name" : "I request GET /visitor/unknownShopperId_9999",
                        "keyword" : "When ",
                        "line" : 150
                    }, {
                        "result" : {
                            "duration" : 411341,
                            "status" : "passed"
                        },
                        "name" : "I expect the following visitor attribute response:",
                        "keyword" : "Then ",
                        "line" : 151,
                        "doc_string" : {
                            "value" : "  [{\n\"Id\": \"unknownShopperId_9999\"\n}]",
                            "line" : 152,
                            "content_type" : ""
                        },
                        "match" : {
                            "location" : "AttributeValueSteps.I_expect_the_following_json_response(String)"
                        }
                    }
                ],
                "type" : "scenario"
            }
        ],
        "uri" : "features\\retrieve_attribute_values.feature"
    }
]
kingsleyh commented 11 years ago

Hi

Every step that does not have a result section in the json will report - Result was missing for this step - because the plugin requires a result for each step to work out if the step passed or failed. There was a bug in cucumber-jvm from all versions after 1.0.8 that caused the json report to be generated with out the result section. So if you are using cucumber-jvm - you should move to version 1.0.8 for the plugin to work. If you are not using cucumber -jvm then there is also a bug with the json generation in whichever version you are using.

I don't believe this is related to the doc_string in any way.

Let me know if anything I have just said solves your issue :)

--K

On 7 Jan 2013, at 18:24, langvtran notifications@github.com wrote:

My report is generating a lot of "Result was missing for this step". Appears to be from the doc_string field in my generated json report.

cucumber_1.json

[{ "id" : "command-line-interface-for-pas", "description" : "", "name" : "Command Line Interface for PAS", "keyword" : "Feature", "line" : 1, "uri" : "features/command_line_interface.feature" }, { "id" : "adding-invalid-attribute-values", "description" : "", "name" : "Adding invalid attribute values", "keyword" : "Feature", "line" : 1, "elements" : [{ "id" : "adding-invalid-attribute-values;adding-a-visitor-attribute-value-for-a-non-valid-attribute-should-return-http-400-and-attribute-shouldnt-be-stored", "description" : "", "name" : "Adding a visitor attribute value for a non-valid attribute should return HTTP 400 and attribute shouldnt be stored", "keyword" : "Scenario", "line" : 3, "steps" : [{ "name" : "visitor with Id unknownShopperId_1234 has no attributes", "keyword" : "Given ", "line" : 4 }, { "name" : "the attribute \"invalidAttribute\" has NOT been defined", "keyword" : "And ", "line" : 5 }, { "name" : "I PUT to /visitor/unknownShopperId_1234:", "keyword" : "When ", "line" : 6, "doc_string" : { "value" : "\t{\n\t \"Id\": \"unknownShopperId_1234\",\n\t \"Attributes\": [{\n\t \"Name\": \"invalidAttribute\",\n\t \"Value\": \"not\",\n\t \"StartDate\": \"Yesterday\",\n\t \"EndDate\": \"Tomorrow\"\n\t }]\n\t}", "line" : 7, "content_type" : "" } }, { "name" : "I expect to get an HTTP response code of 400", "keyword" : "Then ", "line" : 18 }, { "name" : "I expect the following error response:", "keyword" : "And ", "line" : 19, "doc_string" : { "value" : "\t{\n\t \"Errors\": [\"Attribute invalidAttribute is not defined.\"]\n\t}", "line" : 20, "content_type" : "" } }, { "result" : { "duration" : 42913261, "status" : "passed" }, "name" : "visitor with id unknownShopperId_1234 should have no attributes", "keyword" : "And ", "line" : 25, "match" : { "arguments" : [{ "val" : "unknownShopperId_1234", "offset" : 16 } ], "location" : "AttributeValueSteps.visitor_with_id_unknownShopperId_has_no_attributes(String)" } } ], "type" : "scenario" }, { "id" : "adding-invalid-attribute-values;adding-an-attribute-value-with-start-date-greater-than-end-date-should-return-http-400-and-attribute-shouldn\u0027t-be-stored.", "description" : "", "name" : "Adding an attribute value with start date greater than end date should return HTTP 400 and attribute shouldn\u0027t be stored.", "keyword" : "Scenario", "line" : 27, "steps" : [{ "name" : "visitor with Id unknownShopperId_594 has no attributes", "keyword" : "Given ", "line" : 28 }, { "name" : "the attribute \"ondivp\" has been defined", "keyword" : "And ", "line" : 29 }, { "name" : "I PUT to /visitor/unknownShopperId_594:", "keyword" : "When ", "line" : 30, "doc_string" : { "value" : "\t{\n\t \"Id\": \"unknownShopperId_594\",\n\t \"Attributes\": [{\n\t \"Name\": \"ondivp\",\n\t \"Value\": \"B\",\n\t \t\"StartDate\":\"Tomorrow\",\n\t\t\t\"EndDate\":\"Yesterday\"\n\t }]\n\t}", "line" : 31, "content_type" : "" } }, { "name" : "I expect to get an HTTP response code of 400", "keyword" : "Then ", "line" : 42 }, { "name" : "I expect the following error response:", "keyword" : "And ", "line" : 43, "doc_string" : { "value" : "\t{\n\t\t\"Errors\":[\"End date should be after start date.\"]\n\t}", "line" : 44, "content_type" : "" } }, { "result" : { "duration" : 28017966, "status" : "passed" }, "name" : "visitor with id unknownShopperId_594 should have no attributes", "keyword" : "And ", "line" : 49, "match" : { "arguments" : [{ "val" : "unknownShopperId_594", "offset" : 16 } ], "location" : "AttributeValueSteps.visitor_with_id_unknownShopperId_has_no_attributes(String)" } } ], "type" : "scenario" }, { "id" : "adding-invalid-attribute-values;adding-an-attribute-value-with-invalid-start-or-end-dates-should-return-http-400-and-attribute-shouldn\u0027t-be-stored.", "description" : "", "name" : "Adding an attribute value with invalid start or end dates should return HTTP 400 and attribute shouldn\u0027t be stored.", "keyword" : "Scenario", "line" : 51, "steps" : [{ "name" : "visitor with Id unknownShopperId_594 has no attributes", "keyword" : "Given ", "line" : 52 }, { "name" : "the attribute \"ondivp\" has been defined", "keyword" : "And ", "line" : 53 }, { "name" : "I PUT to /visitor/unknownShopperId_594:", "keyword" : "When ", "line" : 54, "doc_string" : { "value" : "\t{\n\t \"Id\": \"unknownShopperId_594\",\n\t \"Attributes\": [{\n\t \"Name\": \"ondivp\",\n\t \"Value\": \"C\",\n\t \"StartDate\": \"12/35/2011 12:00\",\n\t \"EndDate\": \"02/15/2012 18:00\"\n\t }]\n\t}", "line" : 55, "content_type" : "" } }, { "name" : "I expect to get an HTTP response code of 400", "keyword" : "Then ", "line" : 66 }, { "name" : "I expect the following error response:", "keyword" : "And ", "line" : 67, "doc_string" : { "value" : "\t{\n\t \"Errors\": [\"Invalid date value. 12/35/2011 12:00\"]\n\t}", "line" : 68, "content_type" : "" } }, { "result" : { "duration" : 28418633, "status" : "passed" }, "name" : "visitor with id unknownShopperId_594 should have no attributes", "keyword" : "And ", "line" : 73, "match" : { "arguments" : [{ "val" : "unknownShopperId_594", "offset" : 16 } ], "location" : "AttributeValueSteps.visitor_with_id_unknownShopperId_has_no_attributes(String)" } } ], "type" : "scenario" }, { "id" : "adding-invalid-attribute-values;attempting-to-add-attribute-values-with-name-missing-should-return-http-400-and-attribute-shouldn\u0027t-be-stored.", "description" : "", "name" : "Attempting to add attribute values with name missing should return HTTP 400 and attribute shouldn\u0027t be stored.", "keyword" : "Scenario", "line" : 75, "steps" : [{ "name" : "visitor with Id unknownShopperId_594 has no attributes", "keyword" : "Given ", "line" : 76 }, { "name" : "the attribute \"ondivp\" has been defined", "keyword" : "And ", "line" : 77 }, { "name" : "I PUT to /visitor/unknownShopperId_594:", "keyword" : "When ", "line" : 78, "doc_string" : { "value" : "\t{\n\t \"Attributes\": [{\n\t \"Value\": \"C\",\n\t \"StartDate\": \"12/15/2011 12:00\",\n\t \"EndDate\": \"02/15/2012 18:00\"\n\t }]\n\t}", "line" : 79, "content_type" : "" } }, { "name" : "I expect to get an HTTP response code of 400", "keyword" : "Then ", "line" : 88 }, { "name" : "I expect the following error response:", "keyword" : "And ", "line" : 89, "doc_string" : { "value" : "\t{\n\t \"Errors\": [\"Attribute short name must be specified.\"]\n\t}", "line" : 90, "content_type" : "" } }, { "result" : { "duration" : 27286419, "status" : "passed" }, "name" : "visitor with id unknownShopperId_594 should have no attributes", "keyword" : "And ", "line" : 95, "match" : { "arguments" : [{ "val" : "unknownShopperId_594", "offset" : 16 } ], "location" : "AttributeValueSteps.visitor_with_id_unknownShopperId_has_no_attributes(String)" } } ], "type" : "scenario" }, { "id" : "adding-invalid-attribute-values;attempting-to-add-attribute-values-with-value-missing-should-return-http-400-and-attribute-shouldn\u0027t-be-stored.", "description" : "", "name" : "Attempting to add attribute values with value missing should return HTTP 400 and attribute shouldn\u0027t be stored.", "keyword" : "Scenario", "line" : 97, "steps" : [{ "name" : "visitor with Id unknownShopperId_594 has no attributes", "keyword" : "Given ", "line" : 98 }, { "name" : "the attribute \"ondivp\" has been defined", "keyword" : "And ", "line" : 99 }, { "name" : "I PUT to /visitor/unknownShopperId_594:", "keyword" : "When ", "line" : 100, "doc_string" : { "value" : "\t{\n\t \"Attributes\": [{\n\t \"Name\": \"ondivp\",\n\t \"StartDate\": \"12/15/2011 12:00\",\n\t \"EndDate\": \"02/15/2012 18:00\"\n\t }]\n\t}", "line" : 101, "content_type" : "" } }, { "name" : "I expect to get an HTTP response code of 400", "keyword" : "Then ", "line" : 110 }, { "name" : "I expect the following error response:", "keyword" : "And ", "line" : 111, "doc_string" : { "value" : "\t{\n\t \"Errors\": [\"Attribute value must be specified.\"]\n\t}", "line" : 112, "content_type" : "" } }, { "result" : { "duration" : 29059864, "status" : "passed" }, "name" : "visitor with id unknownShopperId_594 should have no attributes", "keyword" : "And ", "line" : 117, "match" : { "arguments" : [{ "val" : "unknownShopperId_594", "offset" : 16 } ], "location" : "AttributeValueSteps.visitor_with_id_unknownShopperId_has_no_attributes(String)" } } ], "type" : "scenario" } ], "uri" : "features\adding_invalid_attribute_values.feature" }, { "id" : "adding-valid-attribute-values", "description" : "", "name" : "Adding valid attribute values", "keyword" : "Feature", "line" : 1, "elements" : [{ "id" : "adding-valid-attribute-values;adding-an-attribute-value-with-valid-start-and-end-dates-should-return-http-204-and-store-the-attribute-value.", "description" : "", "name" : "Adding an attribute value with valid start and end dates should return HTTP 204 and store the attribute value.", "keyword" : "Scenario", "line" : 3, "steps" : [{ "name" : "visitor with Id unknownShopperId_594 has no attributes", "keyword" : "Given ", "line" : 4 }, { "name" : "the attribute \"ondivp\" has been defined", "keyword" : "And ", "line" : 5 }, { "name" : "I PUT to /visitor/unknownShopperId_594:", "keyword" : "When ", "line" : 6, "doc_string" : { "value" : "\t{\r\n\t \"Id\": \"unknownShopperId_594\",\r\n\t \"Attributes\": [{\r\n\t \"Name\": \"ondivp\",\r\n\t \"Value\": \"B\",\r\n\t \"StartDate\": \"Yesterday\",\r\n\t \"EndDate\": \"Tomorrow\"\r\n\t }]\r\n\t}", "line" : 7, "content_type" : "" } }, { "name" : "I expect to get an HTTP response code of 204", "keyword" : "Then ", "line" : 18 }, { "result" : { "duration" : 6666018, "status" : "passed" }, "name" : "visitor with id unknownShopperId_594 should have attributes", "keyword" : "And ", "line" : 19, "match" : { "arguments" : [{ "val" : "unknownShopperId_594", "offset" : 16 } ], "location" : "AttributeValueSteps.visitor_with_Id_unknown_should_have_attributes(String,DataTable)" }, "rows" : [{ "cells" : ["Name", "Value", "StartDate", "EndDate"], "line" : 20 }, { "cells" : ["ondivp", "B", "Yesterday", "Tomorrow"], "line" : 21 } ] } ], "type" : "scenario" }, { "id" : "adding-valid-attribute-values;adding-an-attribute-value-without-dates-should-store-it-with-attribute-definitions-dates-and-return-http-204.", "description" : "", "name" : "Adding an attribute value without dates should store it with attribute definitions dates and return HTTP 204.", "keyword" : "Scenario", "line" : 23, "steps" : [{ "name" : "visitor with Id unknownShopperId_594 has no attributes", "keyword" : "Given ", "line" : 24 }, { "name" : "the attribute \"ondivp\" has been defined as", "keyword" : "And ", "line" : 25, "rows" : [{ "cells" : ["Description", "Name", "Short Name", "Secure", "StartDate", "EndDate", "Active"], "line" : 26 }, { "cells" : ["Attribute Description", "Attribute Name", "ondivp", "false", "12/15/2012 06:00", "01/01/2014 18:00", "true"], "line" : 27 } ] }, { "name" : "I PUT to /visitor/unknownShopperId_594:", "keyword" : "When ", "line" : 28, "doc_string" : { "value" : "{\t\"Id\": \"unknownShopperId_594\",\r\n\t\"Attributes\":\r\n\t[{\"Name\":\"ondivp\",\r\n\t\"Value\":\"B\",\r\n\t\"StartDate\":\"\",\r\n\t\"EndDate\":\"\"}]}", "line" : 29, "content_type" : "" } }, { "name" : "I expect to get an HTTP response code of 204", "keyword" : "Then ", "line" : 37 }, { "result" : { "duration" : 3665530, "status" : "passed" }, "name" : "visitor with id unknownShopperId_594 should have attributes", "keyword" : "And ", "line" : 38, "match" : { "arguments" : [{ "val" : "unknownShopperId_594", "offset" : 16 } ], "location" : "AttributeValueSteps.visitor_with_Id_unknown_should_have_attributes(String,DataTable)" }, "rows" : [{ "cells" : ["Name", "Value", "StartDate", "EndDate"], "line" : 39 }, { "cells" : ["ondivp", "B", "12/15/2012 06:00", "01/01/2014 18:00"], "line" : 40 } ] } ], "type" : "scenario" }, { "id" : "adding-valid-attribute-values;fully-qualified-visitor-id-has-not-specific-format-yet", "description" : "", "name" : "Fully qualified visitor id has not specific format yet", "keyword" : "Scenario", "line" : 44, "steps" : [{ "name" : "visitor with Id aVisitorId has no attributes", "keyword" : "Given ", "line" : 45 }, { "name" : "the attribute \"ondivp\" has been defined", "keyword" : "And ", "line" : 46 }, { "name" : "I PUT to /visitor/aVisitorId:", "keyword" : "When ", "line" : 47, "doc_string" : { "value" : "\t{\r\n\t \"Attributes\": [{\r\n\t \"Name\": \"ondivp\",\r\n\t \"Value\": \"B\",\r\n\t \"StartDate\": \"Yesterday\",\r\n\t \"EndDate\": \"Tomorrow\"\r\n\t }]\r\n\t}", "line" : 48, "content_type" : "" } }, { "name" : "I expect to get an HTTP response code of 204", "keyword" : "Then ", "line" : 58 }, { "result" : { "duration" : 3238179, "status" : "passed" }, "name" : "visitor with id aVisitorId should have attributes", "keyword" : "And ", "line" : 59, "match" : { "arguments" : [{ "val" : "aVisitorId", "offset" : 16 } ], "location" : "AttributeValueSteps.visitor_with_Id_unknown_should_have_attributes(String,DataTable)" }, "rows" : [{ "cells" : ["Name", "Value", "StartDate", "EndDate"], "line" : 60 }, { "cells" : ["ondivp", "B", "Yesterday", "Tomorrow"], "line" : 61 } ] } ], "type" : "scenario" }, { "id" : "adding-valid-attribute-values;updating-attribute-values-for-a-specific-user", "description" : "", "name" : "Updating attribute values for a specific user", "keyword" : "Scenario", "line" : 63, "steps" : [{ "name" : "the attribute \"ondivp\" has been defined", "keyword" : "Given ", "line" : 64 }, { "name" : "the attribute \"onjpdivp\" has been defined", "keyword" : "And ", "line" : 65 }, { "name" : "visitor with Id unknownShopperId_1234 has attributes:", "keyword" : "And ", "line" : 66, "rows" : [{ "cells" : ["Name", "Value", "StartDate", "EndDate"], "line" : 67 }, { "cells" : ["ondivp", "C", "Yesterday", "Tomorrow"], "line" : 68 }, { "cells" : ["onjpdivp", "D", "Yesterday", "Tomorrow"], "line" : 69 } ] }, { "name" : "I PUT to /visitor/unknownShopperId_1234:", "keyword" : "When ", "line" : 70, "doc_string" : { "value" : "\t{\r\n\t \"Id\": \"unknownShopperId_1234\",\r\n\t \"Attributes\": [{\r\n\t \"Name\": \"ondivp\",\r\n\t \"Value\": \"A\",\r\n\t \"StartDate\": \"12/15/2012 06:00\",\r\n\t \"EndDate\": \"01/01/2014 18:00\"\r\n\t }]\r\n\t}", "line" : 71, "content_type" : "" } }, { "name" : "I expect to get an HTTP response code of 204", "keyword" : "Then ", "line" : 82 }, { "result" : { "duration" : 7344197, "status" : "passed" }, "name" : "visitor with id unknownShopperId_1234 should have attributes", "keyword" : "And ", "line" : 83, "match" : { "arguments" : [{ "val" : "unknownShopperId_1234", "offset" : 16 } ], "location" : "AttributeValueSteps.visitor_with_Id_unknown_should_have_attributes(String,DataTable)" }, "rows" : [{ "cells" : ["Name", "Value", "StartDate", "EndDate"], "line" : 84 }, { "cells" : ["ondivp", "A", "12/15/2012 06:00", "01/01/2014 18:00"], "line" : 85 }, { "cells" : ["onjpdivp", "D", "Yesterday", "Tomorrow"], "line" : 86 } ] } ], "type" : "scenario" } ], "uri" : "features\adding_valid_attribute_values.feature" }, { "id" : "defining-invalid-attributes", "description" : "", "name" : "Defining invalid attributes", "keyword" : "Feature", "line" : 1, "elements" : [{ "id" : "defining-invalid-attributes;defining-an-attribute-with-start-date-after-end-date-should-return-400-with-proper-error-message", "description" : "", "name" : "Defining an attribute with start date after end date should return 400 with proper error message", "keyword" : "Scenario", "line" : 3, "steps" : [{ "name" : "I PUT to /attribute/ondivp:", "keyword" : "When ", "line" : 4, "doc_string" : { "value" : "\t{\n\t \"Desc\": \"description is described\",\n\t \"Name\": \"name is named\",\n\t \"IsSecure\": false,\n\t \"StartDate\": \"12/15/2014 06:00\",\n\t \"EndDate\": \"01/01/2012 18:00\",\n\t \"IsActive\": true\n\t}", "line" : 5, "content_type" : "" } }, { "name" : "I expect to get an HTTP response code of 400", "keyword" : "Then ", "line" : 15 }, { "result" : { "duration" : 256574, "status" : "passed" }, "name" : "I expect the following error response:", "keyword" : "And ", "line" : 16, "doc_string" : { "value" : "\t{\n\t \"Errors\": [\"End date must be after start date.\"]\n\t}", "line" : 17, "content_type" : "" }, "match" : { "location" : "HttpSteps.I_expect_the_following_error_response(String)" } } ], "type" : "scenario" }, { "id" : "defining-invalid-attributes;defining-an-attribute-with-invalid-start-or-end-date-should-return-400-with-proper-error-message", "description" : "", "name" : "Defining an attribute with invalid start or end date should return 400 with proper error message", "keyword" : "Scenario", "line" : 22, "steps" : [{ "name" : "I PUT to /attribute/ondivp:", "keyword" : "When ", "line" : 23, "doc_string" : { "value" : "\t{\n\t \"Desc\": \"description is described\",\n\t \"Name\": \"name is named\",\n\t \"IsSecure\": false,\n\t \"StartDate\": \"12/35/2011 06:00\",\n\t \"EndDate\": \"01/01/2012 18:00\",\n\t \"IsActive\": true\n\t}", "line" : 24, "content_type" : "" } }, { "name" : "I expect to get an HTTP response code of 400", "keyword" : "Then ", "line" : 34 }, { "result" : { "duration" : 234818, "status" : "passed" }, "name" : "I expect the following error response:", "keyword" : "And ", "line" : 35, "doc_string" : { "value" : "\t{\n\t \"Errors\": [\"Invalid date value. 12/35/2011 06:00\"]\n\t}", "line" : 36, "content_type" : "" }, "match" : { "location" : "HttpSteps.I_expect_the_following_error_response(String)" } } ], "type" : "scenario" }, { "id" : "defining-invalid-attributes;defining-an-attribute-with-blank-description-field-should-return-400-with-proper-error-message", "description" : "", "name" : "Defining an attribute with blank description field should return 400 with proper error message", "keyword" : "Scenario", "line" : 42, "steps" : [{ "name" : "I PUT to /attribute/ondivp:", "keyword" : "When ", "line" : 43, "doc_string" : { "value" : "\t{\n\t \"Desc\": \"\",\n\t \"Name\": \"name is named\",\n\t \"IsSecure\": false,\n\t \"StartDate\": \"12/15/2012 06:00\",\n\t \"EndDate\": \"01/01/2014 18:00\",\n\t \"IsActive\": true\n\t}", "line" : 44, "content_type" : "" } }, { "name" : "I expect to get an HTTP response code of 400", "keyword" : "Then ", "line" : 54 }, { "result" : { "duration" : 482360, "status" : "passed" }, "name" : "I expect the following error response:", "keyword" : "And ", "line" : 55, "doc_string" : { "value" : "\t{\n\t\t\"Errors\":[\"Attribute description must be specified.\"]\n\t}", "line" : 56, "content_type" : "" }, "match" : { "location" : "HttpSteps.I_expect_the_following_error_response(String)" } } ], "type" : "scenario" }, { "id" : "defining-invalid-attributes;defining-an-attribute-with-blank-name-field-should-return-400-with-proper-error-message", "description" : "", "name" : "Defining an attribute with blank name field should return 400 with proper error message", "keyword" : "Scenario", "line" : 63, "steps" : [{ "name" : "I PUT to /attribute/ondivp:", "keyword" : "When ", "line" : 64, "doc_string" : { "value" : "\t{\n\t \"Desc\": \"Description is described\",\n\t \"Name\": \"\",\n\t \"IsSecure\": false,\n\t \"StartDate\": \"12/15/2012 06:00\",\n\t \"EndDate\": \"01/01/2014 18:00\",\n\t \"IsActive\": true\n\t}", "line" : 65, "content_type" : "" } }, { "name" : "I expect to get an HTTP response code of 400", "keyword" : "Then ", "line" : 75 }, { "result" : { "duration" : 240564, "status" : "passed" }, "name" : "I expect the following error response:", "keyword" : "And ", "line" : 76, "doc_string" : { "value" : "\t{\n\t\t\"Errors\":[\"Attribute name must be specified.\"]\n\t}", "line" : 77, "content_type" : "" }, "match" : { "location" : "HttpSteps.I_expect_the_following_error_response(String)" } } ], "type" : "scenario" }, { "id" : "defining-invalid-attributes;defining-attribute-without-issecure-flag-should-return-400-with-proper-error-message", "description" : "", "name" : "Defining attribute without isSecure flag should return 400 with proper error message", "keyword" : "Scenario", "line" : 84, "steps" : [{ "name" : "I PUT to /attribute/ondivp:", "keyword" : "When ", "line" : 85, "doc_string" : { "value" : "\t{\n\t \"Desc\": \"This is the Old Navy division preference attribute generated by big data used by Ecom with values A, B, C \",\n\t \"Name\": \"Old Navy Division Preference\",\n\t \"StartDate\": \"11/02/2013 06:30\",\n\t \"EndDate\": \"11/05/2013 06:30\",\n\t \"IsActive\": true\n\t}", "line" : 86, "content_type" : "" } }, { "name" : "I expect to get an HTTP response code of 400", "keyword" : "Then ", "line" : 95 }, { "result" : { "duration" : 508634, "status" : "passed" }, "name" : "I expect the following error response:", "keyword" : "And ", "line" : 96, "doc_string" : { "value" : "\t{\n\t\t\"Errors\":[\"Attribute secure flag must be specified.\"]\n\t}", "line" : 97, "content_type" : "" }, "match" : { "location" : "HttpSteps.I_expect_the_following_error_response(String)" } } ], "type" : "scenario" }, { "id" : "defining-invalid-attributes;defining-attribute-without-isactive-flag-should-return-400-with-proper-error-message", "description" : "", "name" : "Defining attribute without isActive flag should return 400 with proper error message", "keyword" : "Scenario", "line" : 104, "steps" : [{ "name" : "I PUT to /attribute/ondivp:", "keyword" : "When ", "line" : 105, "doc_string" : { "value" : "\t{\n\t \"Desc\": \"This is the Old Navy division preference attribute generated by big data used by Ecom with values A, B, C \",\n\t \"Name\": \"Old Navy Division Preference\",\n\t \"StartDate\": \"11/03/2013 06:30\",\n\t \"EndDate\": \"11/06/2013 06:30\",\n\t \"IsSecure\": false\n\t}", "line" : 106, "content_type" : "" } }, { "name" : "I expect to get an HTTP response code of 400", "keyword" : "Then ", "line" : 115 }, { "result" : { "duration" : 267659, "status" : "passed" }, "name" : "I expect the following error response:", "keyword" : "And ", "line" : 116, "doc_string" : { "value" : "\t{\n\t \"Errors\": [\"Attribute active flag must be specified.\"]\n\t}", "line" : 117, "content_type" : "" }, "match" : { "location" : "HttpSteps.I_expect_the_following_error_response(String)" } } ], "type" : "scenario" } ], "uri" : "features\defining_invalid_attributes.feature" }, { "id" : "defining-valid-attributes", "description" : "", "name" : "Defining valid attributes", "keyword" : "Feature", "line" : 1, "elements" : [{ "id" : "defining-valid-attributes;defining-a-new-attribute-with-all-fields", "description" : "", "name" : "Defining a new attribute with all fields", "keyword" : "Scenario", "line" : 3, "steps" : [{ "name" : "I PUT to /attribute/ondivp:", "keyword" : "When ", "line" : 4, "doc_string" : { "value" : "\t{\r\n\t \"Desc\": \"इ लव ब्लूबेरी डेनिश\",\r\n\t \"Name\": \"ールドネイビー課の\",\r\n\t \"IsSecure\": false,\r\n\t \"StartDate\": \"12/15/2012 06:00\",\r\n\t \"EndDate\": \"01/01/2014 18:00\",\r\n\t \"IsActive\": true\r\n\t}", "line" : 5, "content_type" : "" } }, { "name" : "I expect to get an HTTP response code of 204", "keyword" : "Then ", "line" : 15 }, { "result" : { "duration" : 4081387, "status" : "passed" }, "name" : "attribute \"ondivp\" should be defined with the following properties:", "keyword" : "And ", "line" : 16, "match" : { "arguments" : [{ "val" : "ondivp", "offset" : 11 } ], "location" : "AttributeDefinitionSteps.attribute_should_be_defined_with_the_following_properties(String,DataTable)" }, "rows" : [{ "cells" : ["Description", "Name", "Short Name", "Secure", "StartDate", "EndDate", "Active"], "line" : 17 }, { "cells" : ["इ लव ब्लूबेरी डेनिश", "ールドネイビー課の", "ondivp", "false", "12/15/2012 06:00", "01/01/2014 18:00", "true"], "line" : 18 } ] } ], "type" : "scenario" }, { "id" : "defining-valid-attributes;defining-a-new-attribute-without-start-and-end-date-should-use-default-dates", "description" : "", "name" : "Defining a new attribute without start and end date should use default dates", "keyword" : "Scenario", "line" : 20, "steps" : [{ "name" : "I PUT to /attribute/ondivp:", "keyword" : "When ", "line" : 21, "doc_string" : { "value" : "\t{\r\n\t \"Desc\": \"I love blueberry danish\",\r\n\t \"Name\": \"old navy div pref\",\r\n\t \"IsSecure\": false,\r\n\t \"IsActive\": true\r\n\t}", "line" : 22, "content_type" : "" } }, { "name" : "I expect to get an HTTP response code of 204", "keyword" : "Then ", "line" : 30 }, { "result" : { "duration" : 3864632, "status" : "passed" }, "name" : "attribute \"ondivp\" should be defined with the following properties:", "keyword" : "And ", "line" : 31, "match" : { "arguments" : [{ "val" : "ondivp", "offset" : 11 } ], "location" : "AttributeDefinitionSteps.attribute_should_be_defined_with_the_following_properties(String,DataTable)" }, "rows" : [{ "cells" : ["Description", "Name", "Short name", "Secure", "StartDate", "EndDate", "Active"], "line" : 32 }, { "cells" : ["I love blueberry danish", "old navy div pref", "ondivp", "false", "Today", "01/01/2200 00:00", "true"], "line" : 33 } ] } ], "type" : "scenario" }, { "id" : "defining-valid-attributes;putting-into-an-existing-attribute-should-override-all-fields", "description" : "", "name" : "Putting into an existing attribute should override all fields", "keyword" : "Scenario", "line" : 36, "steps" : [{ "name" : "the attribute \"ondivp\" has been defined as", "keyword" : "Given ", "line" : 37, "rows" : [{ "cells" : ["Description", "Name", "Short name", "Secure", "StartDate", "EndDate", "Active"], "line" : 38 }, { "cells" : ["I love blueberry danish", "old navy div pref", "ondivp", "true", "Today", "01/01/2200 00:00", "false"], "line" : 39 } ] }, { "name" : "I PUT to /attribute/ondivp:", "keyword" : "When ", "line" : 40, "doc_string" : { "value" : "\t{\r\n\t \"Desc\": \"I hate blueberry danish\",\r\n\t \"Name\": \"sad old navy div pref\",\r\n\t \"StartDate\": \"11/03/2014 06:30\",\r\n\t \"EndDate\": \"11/06/2015 06:30\",\r\n\t \"IsSecure\": false,\r\n\t \"IsActive\": true\r\n\t}", "line" : 41, "content_type" : "" } }, { "name" : "I expect to get an HTTP response code of 204", "keyword" : "Then ", "line" : 51 }, { "result" : { "duration" : 4216037, "status" : "passed" }, "name" : "attribute \"ondivp\" should be defined with the following properties:", "keyword" : "And ", "line" : 52, "match" : { "arguments" : [{ "val" : "ondivp", "offset" : 11 } ], "location" : "AttributeDefinitionSteps.attribute_should_be_defined_with_the_following_properties(String,DataTable)" }, "rows" : [{ "cells" : ["Description", "Name", "Short name", "Secure", "StartDate", "EndDate", "Active"], "line" : 53 }, { "cells" : ["I hate blueberry danish", "sad old navy div pref", "ondivp", "false", "11/03/2014 06:30", "11/06/2015 06:30", "true"], "line" : 54 } ] } ], "type" : "scenario" } ], "uri" : "features\defining_valid_attributes.feature" }, { "id" : "retrieving-attribute-values", "description" : "", "name" : "Retrieving attribute values", "keyword" : "Feature", "line" : 1, "elements" : [{ "id" : "retrieving-attribute-values;retrieving-visitor-attribute-values-for-multiple-ids", "description" : "", "name" : "Retrieving visitor attribute values for multiple IDs", "keyword" : "Scenario", "line" : 3, "steps" : [{ "name" : "visitor with Id unknownShopperId_1234 has attributes:", "keyword" : "Given ", "line" : 4, "rows" : [{ "cells" : ["Name", "Value", "StartDate", "EndDate"], "line" : 5 }, { "cells" : ["ondivp", "C", "Yesterday", "Tomorrow"], "line" : 6 }, { "cells" : ["onjpdivp", "D", "Yesterday", "Tomorrow"], "line" : 7 } ] }, { "name" : "visitor with Id cust_3456 has attributes:", "keyword" : "And ", "line" : 8, "rows" : [{ "cells" : ["Name", "Value", "StartDate", "EndDate"], "line" : 9 }, { "cells" : ["onjpdivp", "F", "Yesterday", "Tomorrow"], "line" : 10 } ] }, { "name" : "I request GET /visitor/unknownShopperId_1234,cust_3456", "keyword" : "When ", "line" : 11 }, { "result" : { "duration" : 5787916, "status" : "passed" }, "name" : "I expect the following visitor attribute response:", "keyword" : "Then ", "line" : 12, "doc_string" : { "value" : " [{\n \"Id\": \"unknownShopperId_1234\",\n \"Attributes\": [{\n \"Name\": \"ondivp\",\n \"Value\": \"C\",\n \"StartDate\": \"Yesterday\",\n \"EndDate\": \"Tomorrow\"\n }, {\n \"Name\": \"onjpdivp\",\n \"Value\": \"D\",\n \"StartDate\": \"Yesterday\",\n \"EndDate\": \"Tomorrow\"\n }]\n }, {\n \"Id\": \"cust_3456\",\n \"Attributes\": [{\n \"Name\": \"onjpdivp\",\n \"Value\": \"F\",\n \"StartDate\": \"Yesterday\",\n \"EndDate\": \"Tomorrow\"\n }]\n }] ", "line" : 13, "content_type" : "" }, "match" : { "location" : "AttributeValueSteps.I_expect_the_following_json_response(String)" } } ], "type" : "scenario" }, { "id" : "retrieving-attribute-values;retrieving-visitor-attribute-values-for-specified-attribute-short-names", "description" : "", "name" : "Retrieving visitor attribute values for specified attribute short names", "keyword" : "Scenario", "line" : 38, "steps" : [{ "name" : "visitor with Id unknownShopperId_1234 has attributes:", "keyword" : "Given ", "line" : 39, "rows" : [{ "cells" : ["Name", "Value", "StartDate", "EndDate"], "line" : 40 }, { "cells" : ["ondivp", "C", "Yesterday", "Tomorrow"], "line" : 41 }, { "cells" : ["onjpdivp", "D", "Yesterday", "Tomorrow"], "line" : 42 }, { "cells" : ["brdivp", "E", "Yesterday", "Tomorrow"], "line" : 43 } ] }, { "name" : "I request GET /visitor/unknownShopperId_1234?attr\u003dondivp,brdivp,brjpdivp", "keyword" : "When ", "line" : 44 }, { "result" : { "duration" : 1759077, "status" : "passed" }, "name" : "I expect the following visitor attribute response:", "keyword" : "Then ", "line" : 45, "doc_string" : { "value" : "[{\n\"Id\": \"unknownShopperId_1234\",\n\"Attributes\": [{\n \"Name\": \"ondivp\",\n \"Value\": \"C\",\n \"StartDate\": \"Yesterday\",\n \"EndDate\": \"Tomorrow\"\n}, {\n \"Name\": \"brdivp\",\n \"Value\": \"E\",\n \"StartDate\": \"Yesterday\",\n \"EndDate\": \"Tomorrow\"\n}]\n}] ", "line" : 46, "content_type" : "" }, "match" : { "location" : "AttributeValueSteps.I_expect_the_following_json_response(String)" } } ], "type" : "scenario" }, { "id" : "retrieving-attribute-values;retrieving-active-and-unexpired-visitor-attribute-values-with-preview-date", "description" : "", "name" : "Retrieving active and unexpired visitor attribute values with preview date", "keyword" : "Scenario", "line" : 63, "steps" : [{ "name" : "visitor with Id unknownShopperId_1234 has attributes:", "keyword" : "Given ", "line" : 64, "rows" : [{ "cells" : ["Name", "Value", "Active", "StartDate", "EndDate"], "line" : 65 }, { "cells" : ["still", "C", "true", "Yesterday", "Yesterday"], "line" : 66 }, { "cells" : ["a-", "C", "true", "Yesterday", "Today"], "line" : 67 }, { "cells" : ["live", "C", "false", "Yesterday", "Tomorrow"], "line" : 68 }, { "cells" : ["extinct", "E", "true", "Today", "Today"], "line" : 69 }, { "cells" : ["dormant", "E", "true", "Today", "Tomorrow"], "line" : 70 }, { "cells" : ["hidden", "E", "true", "Tomorrow", "Tomorrow"], "line" : 71 } ] }, { "name" : "I request GET /visitor/unknownShopperId_1234?previewDate\u003dYesterday", "keyword" : "When ", "line" : 72 }, { "result" : { "duration" : 1484849, "status" : "passed" }, "name" : "I expect the following visitor attribute response:", "keyword" : "Then ", "line" : 73, "doc_string" : { "value" : " [{\n\t \"Id\": \"unknownShopperId_1234\",\n\t \"Attributes\": [{\n\t \"Name\": \"still\",\n\t \"Value\": \"C\",\n\t \"StartDate\": \"Yesterday\",\n\t \"EndDate\": \"Yesterday\"\n\t }, {\n\t \"Name\": \"a-\",\n\t \"Value\": \"C\",\n\t \"StartDate\": \"Yesterday\",\n\t \"EndDate\": \"Today\"\n\t }]\n\t}]", "line" : 74, "content_type" : "" }, "match" : { "location" : "AttributeValueSteps.I_expect_the_following_json_response(String)" } } ], "type" : "scenario" }, { "id" : "retrieving-attribute-values;retrieving-active-and-unexpired-visitor-attribute-values-without-specifying-preview-date", "description" : "", "name" : "Retrieving active and unexpired visitor attribute values without specifying preview date", "keyword" : "Scenario", "line" : 91, "steps" : [{ "name" : "visitor with Id unknownShopperId_1234 has attributes:", "keyword" : "Given ", "line" : 92, "rows" : [{ "cells" : ["Name", "Value", "Active", "StartDate", "EndDate"], "line" : 93 }, { "cells" : ["still", "C", "true", "Yesterday", "Today"], "line" : 94 }, { "cells" : ["a-", "C", "true", "Today", "Tomorrow"], "line" : 95 }, { "cells" : ["live", "C", "true", "Today", "Today"], "line" : 96 }, { "cells" : ["extinct", "E", "true", "Yesterday", "Yesterday"], "line" : 97 }, { "cells" : ["dormant", "E", "true", "Tomorrow", "Tomorrow"], "line" : 98 }, { "cells" : ["hidden", "E", "false", "Yesterday", "Tomorrow"], "line" : 99 } ] }, { "name" : "I request GET /visitor/unknownShopperId_1234", "keyword" : "When ", "line" : 100 }, { "result" : { "duration" : 1395356, "status" : "passed" }, "name" : "I expect the following visitor attribute response:", "keyword" : "Then ", "line" : 101, "doc_string" : { "value" : " [{\n \"Id\": \"unknownShopperId_1234\",\n \"Attributes\": [{\n \"Name\": \"still\",\n \"Value\": \"C\",\n \"StartDate\": \"Yesterday\",\n \"EndDate\": \"Today\"\n }, {\n \"Name\": \"a-\",\n \"Value\": \"C\",\n \"StartDate\": \"Today\",\n \"EndDate\": \"Tomorrow\"\n }, {\n \"Name\": \"live\",\n \"Value\": \"C\",\n \"StartDate\": \"Today\",\n \"EndDate\": \"Today\"\n }]\n}]",

langvtran commented 11 years ago

Hi Kingsley,

Thanks for the explanation, I did see that previous bug report but didn't realize every step required a result. Looks to be ok with 1.0.8.

Lang


From: Kingsley Hendrickse notifications@github.com To: masterthought/cucumber-reporting cucumber-reporting@noreply.github.com Cc: langvtran langvtran@yahoo.com Sent: Monday, January 7, 2013 12:50 PM Subject: Re: [cucumber-reporting] doc_string fields results in "Result was missing for this step" (#10)

Hi

Every step that does not have a result section in the json will report - Result was missing for this step - because the plugin requires a result for each step to work out if the step passed or failed. There was a bug in cucumber-jvm from all versions after 1.0.8 that caused the json report to be generated with out the result section. So if you are using cucumber-jvm - you should move to version 1.0.8 for the plugin to work. If you are not using cucumber -jvm then there is also a bug with the json generation in whichever version you are using.

I don't believe this is related to the doc_string in any way.

Let me know if anything I have just said solves your issue :)

--K

On 7 Jan 2013, at 18:24, langvtran notifications@github.com wrote:

My report is generating a lot of "Result was missing for this step". Appears to be from the doc_string field in my generated json report.

cucumber_1.json

[{ "id" : "command-line-interface-for-pas", "description" : "", "name" : "Command Line Interface for PAS", "keyword" : "Feature", "line" : 1, "uri" : "features/command_line_interface.feature" }, { "id" : "adding-invalid-attribute-values", "description" : "", "name" : "Adding invalid attribute values", "keyword" : "Feature", "line" : 1, "elements" : [{ "id" : "adding-invalid-attribute-values;adding-a-visitor-attribute-value-for-a-non-valid-attribute-should-return-http-400-and-attribute-shouldnt-be-stored", "description" : "", "name" : "Adding a visitor attribute value for a non-valid attribute should return HTTP 400 and attribute shouldnt be stored", "keyword" : "Scenario", "line" : 3, "steps" : [{ "name" : "visitor with Id unknownShopperId_1234 has no attributes", "keyword" : "Given ", "line" : 4 }, { "name" : "the attribute \"invalidAttribute\" has NOT been defined", "keyword" : "And ", "line" : 5 }, { "name" : "I PUT to /visitor/unknownShopperId_1234:", "keyword" : "When ", "line" : 6, "doc_string" : { "value" : "\t{\n\t \"Id\": \"unknownShopperId_1234\",\n\t \"Attributes\": [{\n\t \"Name\": \"invalidAttribute\",\n\t \"Value\": \"not\",\n\t \"StartDate\": \"Yesterday\",\n\t \"EndDate\": \"Tomorrow\"\n\t }]\n\t}", "line" : 7, "content_type" : "" } }, { "name" : "I expect to get an HTTP response code of 400", "keyword" : "Then ", "line" : 18 }, { "name" : "I expect the following error response:", "keyword" : "And ", "line" : 19, "doc_string" : { "value" : "\t{\n\t \"Errors\": [\"Attribute invalidAttribute is not defined.\"]\n\t}", "line" : 20, "content_type" : "" } }, { "result" : { "duration" : 42913261, "status" : "passed" }, "name" : "visitor with id unknownShopperId_1234 should have no attributes", "keyword" : "And ", "line" : 25, "match" : { "arguments" : [{ "val" : "unknownShopperId_1234", "offset" : 16 } ], "location" : "AttributeValueSteps.visitor_with_id_unknownShopperId_has_no_attributes(String)" } } ], "type" : "scenario" }, { "id" : "adding-invalid-attribute-values;adding-an-attribute-value-with-start-date-greater-than-end-date-should-return-http-400-and-attribute-shouldn\u0027t-be-stored.", "description" : "", "name" : "Adding an attribute value with start date greater than end date should return HTTP 400 and attribute shouldn\u0027t be stored.", "keyword" : "Scenario", "line" : 27, "steps" : [{ "name" : "visitor with Id unknownShopperId_594 has no attributes", "keyword" : "Given ", "line" : 28 }, { "name" : "the attribute \"ondivp\" has been defined", "keyword" : "And ", "line" : 29 }, { "name" : "I PUT to /visitor/unknownShopperId_594:", "keyword" : "When ", "line" : 30, "doc_string" : { "value" : "\t{\n\t \"Id\": \"unknownShopperId_594\",\n\t \"Attributes\": [{\n\t \"Name\": \"ondivp\",\n\t \"Value\": \"B\",\n\t \t\"StartDate\":\"Tomorrow\",\n\t\t\t\"EndDate\":\"Yesterday\"\n\t }]\n\t}", "line" : 31, "content_type" : "" } }, { "name" : "I expect to get an HTTP response code of 400", "keyword" : "Then ", "line" : 42 }, { "name" : "I expect the following error response:", "keyword" : "And ", "line" : 43, "doc_string" : { "value" : "\t{\n\t\t\"Errors\":[\"End date should be after start date.\"]\n\t}", "line" : 44, "content_type" : "" } }, { "result" : { "duration" : 28017966, "status" : "passed" }, "name" : "visitor with id unknownShopperId_594 should have no attributes", "keyword" : "And ", "line" : 49, "match" : { "arguments" : [{ "val" : "unknownShopperId_594", "offset" : 16 } ], "location" : "AttributeValueSteps.visitor_with_id_unknownShopperId_has_no_attributes(String)" } } ], "type" : "scenario" }, { "id" : "adding-invalid-attribute-values;adding-an-attribute-value-with-invalid-start-or-end-dates-should-return-http-400-and-attribute-shouldn\u0027t-be-stored.", "description" : "", "name" : "Adding an attribute value with invalid start or end dates should return HTTP 400 and attribute shouldn\u0027t be stored.", "keyword" : "Scenario", "line" : 51, "steps" : [{ "name" : "visitor with Id unknownShopperId_594 has no attributes", "keyword" : "Given ", "line" : 52 }, { "name" : "the attribute \"ondivp\" has been defined", "keyword" : "And ", "line" : 53 }, { "name" : "I PUT to /visitor/unknownShopperId_594:", "keyword" : "When ", "line" : 54, "doc_string" : { "value" : "\t{\n\t \"Id\": \"unknownShopperId_594\",\n\t \"Attributes\": [{\n\t \"Name\": \"ondivp\",\n\t \"Value\": \"C\",\n\t \"StartDate\": \"12/35/2011 12:00\",\n\t \"EndDate\": \"02/15/2012 18:00\"\n\t }]\n\t}", "line" : 55, "content_type" : "" } }, { "name" : "I expect to get an HTTP response code of 400", "keyword" : "Then ", "line" : 66 }, { "name" : "I expect the following error response:", "keyword" : "And ", "line" : 67, "doc_string" : { "value" : "\t{\n\t \"Errors\": [\"Invalid date value. 12/35/2011 12:00\"]\n\t}", "line" : 68, "content_type" : "" } }, { "result" : { "duration" : 28418633, "status" : "passed" }, "name" : "visitor with id unknownShopperId_594 should have no attributes", "keyword" : "And ", "line" : 73, "match" : { "arguments" : [{ "val" : "unknownShopperId_594", "offset" : 16 } ], "location" : "AttributeValueSteps.visitor_with_id_unknownShopperId_has_no_attributes(String)" } } ], "type" : "scenario" }, { "id" : "adding-invalid-attribute-values;attempting-to-add-attribute-values-with-name-missing-should-return-http-400-and-attribute-shouldn\u0027t-be-stored.", "description" : "", "name" : "Attempting to add attribute values with name missing should return HTTP 400 and attribute shouldn\u0027t be stored.", "keyword" : "Scenario", "line" : 75, "steps" : [{ "name" : "visitor with Id unknownShopperId_594 has no attributes", "keyword" : "Given ", "line" : 76 }, { "name" : "the attribute \"ondivp\" has been defined", "keyword" : "And ", "line" : 77 }, { "name" : "I PUT to /visitor/unknownShopperId_594:", "keyword" : "When ", "line" : 78, "doc_string" : { "value" : "\t{\n\t \"Attributes\": [{\n\t \"Value\": \"C\",\n\t \"StartDate\": \"12/15/2011 12:00\",\n\t \"EndDate\": \"02/15/2012 18:00\"\n\t }]\n\t}", "line" : 79, "content_type" : "" } }, { "name" : "I expect to get an HTTP response code of 400", "keyword" : "Then ", "line" : 88 }, { "name" : "I expect the following error response:", "keyword" : "And ", "line" : 89, "doc_string" : { "value" : "\t{\n\t \"Errors\": [\"Attribute short name must be specified.\"]\n\t}", "line" : 90, "content_type" : "" } }, { "result" : { "duration" : 27286419, "status" : "passed" }, "name" : "visitor with id unknownShopperId_594 should have no attributes", "keyword" : "And ", "line" : 95, "match" : { "arguments" : [{ "val" : "unknownShopperId_594", "offset" : 16 } ], "location" : "AttributeValueSteps.visitor_with_id_unknownShopperId_has_no_attributes(String)" } } ], "type" : "scenario" }, { "id" : "adding-invalid-attribute-values;attempting-to-add-attribute-values-with-value-missing-should-return-http-400-and-attribute-shouldn\u0027t-be-stored.", "description" : "", "name" : "Attempting to add attribute values with value missing should return HTTP 400 and attribute shouldn\u0027t be stored.", "keyword" : "Scenario", "line" : 97, "steps" : [{ "name" : "visitor with Id unknownShopperId_594 has no attributes", "keyword" : "Given ", "line" : 98 }, { "name" : "the attribute \"ondivp\" has been defined", "keyword" : "And ", "line" : 99 }, { "name" : "I PUT to /visitor/unknownShopperId_594:", "keyword" : "When ", "line" : 100, "doc_string" : { "value" : "\t{\n\t \"Attributes\": [{\n\t \"Name\": \"ondivp\",\n\t \"StartDate\": \"12/15/2011 12:00\",\n\t \"EndDate\": \"02/15/2012 18:00\"\n\t }]\n\t}", "line" : 101, "content_type" : "" } }, { "name" : "I expect to get an HTTP response code of 400", "keyword" : "Then ", "line" : 110 }, { "name" : "I expect the following error response:", "keyword" : "And ", "line" : 111, "doc_string" : { "value" : "\t{\n\t \"Errors\": [\"Attribute value must be specified.\"]\n\t}", "line" : 112, "content_type" : "" } }, { "result" : { "duration" : 29059864, "status" : "passed" }, "name" : "visitor with id unknownShopperId_594 should have no attributes", "keyword" : "And ", "line" : 117, "match" : { "arguments" : [{ "val" : "unknownShopperId_594", "offset" : 16 } ], "location" : "AttributeValueSteps.visitor_with_id_unknownShopperId_has_no_attributes(String)" } } ], "type" : "scenario" } ], "uri" : "features\adding_invalid_attribute_values.feature" }, { "id" : "adding-valid-attribute-values", "description" : "", "name" : "Adding valid attribute values", "keyword" : "Feature", "line" : 1, "elements" : [{ "id" : "adding-valid-attribute-values;adding-an-attribute-value-with-valid-start-and-end-dates-should-return-http-204-and-store-the-attribute-value.", "description" : "", "name" : "Adding an attribute value with valid start and end dates should return HTTP 204 and store the attribute value.", "keyword" : "Scenario", "line" : 3, "steps" : [{ "name" : "visitor with Id unknownShopperId_594 has no attributes", "keyword" : "Given ", "line" : 4 }, { "name" : "the attribute \"ondivp\" has been defined", "keyword" : "And ", "line" : 5 }, { "name" : "I PUT to /visitor/unknownShopperId_594:", "keyword" : "When ", "line" : 6, "doc_string" : { "value" : "\t{\r\n\t \"Id\": \"unknownShopperId_594\",\r\n\t \"Attributes\": [{\r\n\t \"Name\": \"ondivp\",\r\n\t \"Value\": \"B\",\r\n\t \"StartDate\": \"Yesterday\",\r\n\t \"EndDate\": \"Tomorrow\"\r\n\t }]\r\n\t}", "line" : 7, "content_type" : "" } }, { "name" : "I expect to get an HTTP response code of 204", "keyword" : "Then ", "line" : 18 }, { "result" : { "duration" : 6666018, "status" : "passed" }, "name" : "visitor with id unknownShopperId_594 should have attributes", "keyword" : "And ", "line" : 19, "match" : { "arguments" : [{ "val" : "unknownShopperId_594", "offset" : 16 } ], "location" : "AttributeValueSteps.visitor_with_Id_unknown_should_have_attributes(String,DataTable)" }, "rows" : [{ "cells" : ["Name", "Value", "StartDate", "EndDate"], "line" : 20 }, { "cells" : ["ondivp", "B", "Yesterday", "Tomorrow"], "line" : 21 } ] } ], "type" : "scenario" }, { "id" : "adding-valid-attribute-values;adding-an-attribute-value-without-dates-should-store-it-with-attribute-definitions-dates-and-return-http-204.", "description" : "", "name" : "Adding an attribute value without dates should store it with attribute definitions dates and return HTTP 204.", "keyword" : "Scenario", "line" : 23, "steps" : [{ "name" : "visitor with Id unknownShopperId_594 has no attributes", "keyword" : "Given ", "line" : 24 }, { "name" : "the attribute \"ondivp\" has been defined as", "keyword" : "And ", "line" : 25, "rows" : [{ "cells" : ["Description", "Name", "Short Name", "Secure", "StartDate", "EndDate", "Active"], "line" : 26 }, { "cells" : ["Attribute Description", "Attribute Name", "ondivp", "false", "12/15/2012 06:00", "01/01/2014 18:00", "true"], "line" : 27 } ] }, { "name" : "I PUT to /visitor/unknownShopperId_594:", "keyword" : "When ", "line" : 28, "doc_string" : { "value" : "{\t\"Id\": \"unknownShopperId_594\",\r\n\t\"Attributes\":\r\n\t[{\"Name\":\"ondivp\",\r\n\t\"Value\":\"B\",\r\n\t\"StartDate\":\"\",\r\n\t\"EndDate\":\"\"}]}", "line" : 29, "content_type" : "" } }, { "name" : "I expect to get an HTTP response code of 204", "keyword" : "Then ", "line" : 37 }, { "result" : { "duration" : 3665530, "status" : "passed" }, "name" : "visitor with id unknownShopperId_594 should have attributes", "keyword" : "And ", "line" : 38, "match" : { "arguments" : [{ "val" : "unknownShopperId_594", "offset" : 16 } ], "location" : "AttributeValueSteps.visitor_with_Id_unknown_should_have_attributes(String,DataTable)" }, "rows" : [{ "cells" : ["Name", "Value", "StartDate", "EndDate"], "line" : 39 }, { "cells" : ["ondivp", "B", "12/15/2012 06:00", "01/01/2014 18:00"], "line" : 40 } ] } ], "type" : "scenario" }, { "id" : "adding-valid-attribute-values;fully-qualified-visitor-id-has-not-specific-format-yet", "description" : "", "name" : "Fully qualified visitor id has not specific format yet", "keyword" : "Scenario", "line" : 44, "steps" : [{ "name" : "visitor with Id aVisitorId has no attributes", "keyword" : "Given ", "line" : 45 }, { "name" : "the attribute \"ondivp\" has been defined", "keyword" : "And ", "line" : 46 }, { "name" : "I PUT to /visitor/aVisitorId:", "keyword" : "When ", "line" : 47, "doc_string" : { "value" : "\t{\r\n\t \"Attributes\": [{\r\n\t \"Name\": \"ondivp\",\r\n\t \"Value\": \"B\",\r\n\t \"StartDate\": \"Yesterday\",\r\n\t \"EndDate\": \"Tomorrow\"\r\n\t }]\r\n\t}", "line" : 48, "content_type" : "" } }, { "name" : "I expect to get an HTTP response code of 204", "keyword" : "Then ", "line" : 58 }, { "result" : { "duration" : 3238179, "status" : "passed" }, "name" : "visitor with id aVisitorId should have attributes", "keyword" : "And ", "line" : 59, "match" : { "arguments" : [{ "val" : "aVisitorId", "offset" : 16 } ], "location" : "AttributeValueSteps.visitor_with_Id_unknown_should_have_attributes(String,DataTable)" }, "rows" : [{ "cells" : ["Name", "Value", "StartDate", "EndDate"], "line" : 60 }, { "cells" : ["ondivp", "B", "Yesterday", "Tomorrow"], "line" : 61 } ] } ], "type" : "scenario" }, { "id" : "adding-valid-attribute-values;updating-attribute-values-for-a-specific-user", "description" : "", "name" : "Updating attribute values for a specific user", "keyword" : "Scenario", "line" : 63, "steps" : [{ "name" : "the attribute \"ondivp\" has been defined", "keyword" : "Given ", "line" : 64 }, { "name" : "the attribute \"onjpdivp\" has been defined", "keyword" : "And ", "line" : 65 }, { "name" : "visitor with Id unknownShopperId_1234 has attributes:", "keyword" : "And ", "line" : 66, "rows" : [{ "cells" : ["Name", "Value", "StartDate", "EndDate"], "line" : 67 }, { "cells" : ["ondivp", "C", "Yesterday", "Tomorrow"], "line" : 68 }, { "cells" : ["onjpdivp", "D", "Yesterday", "Tomorrow"], "line" : 69 } ] }, { "name" : "I PUT to /visitor/unknownShopperId_1234:", "keyword" : "When ", "line" : 70, "doc_string" : { "value" : "\t{\r\n\t \"Id\": \"unknownShopperId_1234\",\r\n\t \"Attributes\": [{\r\n\t \"Name\": \"ondivp\",\r\n\t \"Value\": \"A\",\r\n\t \"StartDate\": \"12/15/2012 06:00\",\r\n\t \"EndDate\": \"01/01/2014 18:00\"\r\n\t }]\r\n\t}", "line" : 71, "content_type" : "" } }, { "name" : "I expect to get an HTTP response code of 204", "keyword" : "Then ", "line" : 82 }, { "result" : { "duration" : 7344197, "status" : "passed" }, "name" : "visitor with id unknownShopperId_1234 should have attributes", "keyword" : "And ", "line" : 83, "match" : { "arguments" : [{ "val" : "unknownShopperId_1234", "offset" : 16 } ], "location" : "AttributeValueSteps.visitor_with_Id_unknown_should_have_attributes(String,DataTable)" }, "rows" : [{ "cells" : ["Name", "Value", "StartDate", "EndDate"], "line" : 84 }, { "cells" : ["ondivp", "A", "12/15/2012 06:00", "01/01/2014 18:00"], "line" : 85 }, { "cells" : ["onjpdivp", "D", "Yesterday", "Tomorrow"], "line" : 86 } ] } ], "type" : "scenario" } ], "uri" : "features\adding_valid_attribute_values.feature" }, { "id" : "defining-invalid-attributes", "description" : "", "name" : "Defining invalid attributes", "keyword" : "Feature", "line" : 1, "elements" : [{ "id" : "defining-invalid-attributes;defining-an-attribute-with-start-date-after-end-date-should-return-400-with-proper-error-message", "description" : "", "name" : "Defining an attribute with start date after end date should return 400 with proper error message", "keyword" : "Scenario", "line" : 3, "steps" : [{ "name" : "I PUT to /attribute/ondivp:", "keyword" : "When ", "line" : 4, "doc_string" : { "value" : "\t{\n\t \"Desc\": \"description is described\",\n\t \"Name\": \"name is named\",\n\t \"IsSecure\": false,\n\t \"StartDate\": \"12/15/2014 06:00\",\n\t \"EndDate\": \"01/01/2012 18:00\",\n\t \"IsActive\": true\n\t}", "line" : 5, "content_type" : "" } }, { "name" : "I expect to get an HTTP response code of 400", "keyword" : "Then ", "line" : 15 }, { "result" : { "duration" : 256574, "status" : "passed" }, "name" : "I expect the following error response:", "keyword" : "And ", "line" : 16, "doc_string" : { "value" : "\t{\n\t \"Errors\": [\"End date must be after start date.\"]\n\t}", "line" : 17, "content_type" : "" }, "match" : { "location" : "HttpSteps.I_expect_the_following_error_response(String)" } } ], "type" : "scenario" }, { "id" : "defining-invalid-attributes;defining-an-attribute-with-invalid-start-or-end-date-should-return-400-with-proper-error-message", "description" : "", "name" : "Defining an attribute with invalid start or end date should return 400 with proper error message", "keyword" : "Scenario", "line" : 22, "steps" : [{ "name" : "I PUT to /attribute/ondivp:", "keyword" : "When ", "line" : 23, "doc_string" : { "value" : "\t{\n\t \"Desc\": \"description is described\",\n\t \"Name\": \"name is named\",\n\t \"IsSecure\": false,\n\t \"StartDate\": \"12/35/2011 06:00\",\n\t \"EndDate\": \"01/01/2012 18:00\",\n\t \"IsActive\": true\n\t}", "line" : 24, "content_type" : "" } }, { "name" : "I expect to get an HTTP response code of 400", "keyword" : "Then ", "line" : 34 }, { "result" : { "duration" : 234818, "status" : "passed" }, "name" : "I expect the following error response:", "keyword" : "And ", "line" : 35, "doc_string" : { "value" : "\t{\n\t \"Errors\": [\"Invalid date value. 12/35/2011 06:00\"]\n\t}", "line" : 36, "content_type" : "" }, "match" : { "location" : "HttpSteps.I_expect_the_following_error_response(String)" } } ], "type" : "scenario" }, { "id" : "defining-invalid-attributes;defining-an-attribute-with-blank-description-field-should-return-400-with-proper-error-message", "description" : "", "name" : "Defining an attribute with blank description field should return 400 with proper error message", "keyword" : "Scenario", "line" : 42, "steps" : [{ "name" : "I PUT to /attribute/ondivp:", "keyword" : "When ", "line" : 43, "doc_string" : { "value" : "\t{\n\t \"Desc\": \"\",\n\t \"Name\": \"name is named\",\n\t \"IsSecure\": false,\n\t \"StartDate\": \"12/15/2012 06:00\",\n\t \"EndDate\": \"01/01/2014 18:00\",\n\t \"IsActive\": true\n\t}", "line" : 44, "content_type" : "" } }, { "name" : "I expect to get an HTTP response code of 400", "keyword" : "Then ", "line" : 54 }, { "result" : { "duration" : 482360, "status" : "passed" }, "name" : "I expect the following error response:", "keyword" : "And ", "line" : 55, "doc_string" : { "value" : "\t{\n\t\t\"Errors\":[\"Attribute description must be specified.\"]\n\t}", "line" : 56, "content_type" : "" }, "match" : { "location" : "HttpSteps.I_expect_the_following_error_response(String)" } } ], "type" : "scenario" }, { "id" : "defining-invalid-attributes;defining-an-attribute-with-blank-name-field-should-return-400-with-proper-error-message", "description" : "", "name" : "Defining an attribute with blank name field should return 400 with proper error message", "keyword" : "Scenario", "line" : 63, "steps" : [{ "name" : "I PUT to /attribute/ondivp:", "keyword" : "When ", "line" : 64, "doc_string" : { "value" : "\t{\n\t \"Desc\": \"Description is described\",\n\t \"Name\": \"\",\n\t \"IsSecure\": false,\n\t \"StartDate\": \"12/15/2012 06:00\",\n\t \"EndDate\": \"01/01/2014 18:00\",\n\t \"IsActive\": true\n\t}", "line" : 65, "content_type" : "" } }, { "name" : "I expect to get an HTTP response code of 400", "keyword" : "Then ", "line" : 75 }, { "result" : { "duration" : 240564, "status" : "passed" }, "name" : "I expect the following error response:", "keyword" : "And ", "line" : 76, "doc_string" : { "value" : "\t{\n\t\t\"Errors\":[\"Attribute name must be specified.\"]\n\t}", "line" : 77, "content_type" : "" }, "match" : { "location" : "HttpSteps.I_expect_the_following_error_response(String)" } } ], "type" : "scenario" }, { "id" : "defining-invalid-attributes;defining-attribute-without-issecure-flag-should-return-400-with-proper-error-message", "description" : "", "name" : "Defining attribute without isSecure flag should return 400 with proper error message", "keyword" : "Scenario", "line" : 84, "steps" : [{ "name" : "I PUT to /attribute/ondivp:", "keyword" : "When ", "line" : 85, "doc_string" : { "value" : "\t{\n\t \"Desc\": \"This is the Old Navy division preference attribute generated by big data used by Ecom with values A, B, C \",\n\t \"Name\": \"Old Navy Division Preference\",\n\t \"StartDate\": \"11/02/2013 06:30\",\n\t \"EndDate\": \"11/05/2013 06:30\",\n\t \"IsActive\": true\n\t}", "line" : 86, "content_type" : "" } }, { "name" : "I expect to get an HTTP response code of 400", "keyword" : "Then ", "line" : 95 }, { "result" : { "duration" : 508634, "status" : "passed" }, "name" : "I expect the following error response:", "keyword" : "And ", "line" : 96, "doc_string" : { "value" : "\t{\n\t\t\"Errors\":[\"Attribute secure flag must be specified.\"]\n\t}", "line" : 97, "content_type" : "" }, "match" : { "location" : "HttpSteps.I_expect_the_following_error_response(String)" } } ], "type" : "scenario" }, { "id" : "defining-invalid-attributes;defining-attribute-without-isactive-flag-should-return-400-with-proper-error-message", "description" : "", "name" : "Defining attribute without isActive flag should return 400 with proper error message", "keyword" : "Scenario", "line" : 104, "steps" : [{ "name" : "I PUT to /attribute/ondivp:", "keyword" : "When ", "line" : 105, "doc_string" : { "value" : "\t{\n\t \"Desc\": \"This is the Old Navy division preference attribute generated by big data used by Ecom with values A, B, C \",\n\t \"Name\": \"Old Navy Division Preference\",\n\t \"StartDate\": \"11/03/2013 06:30\",\n\t \"EndDate\": \"11/06/2013 06:30\",\n\t \"IsSecure\": false\n\t}", "line" : 106, "content_type" : "" } }, { "name" : "I expect to get an HTTP response code of 400", "keyword" : "Then ", "line" : 115 }, { "result" : { "duration" : 267659, "status" : "passed" }, "name" : "I expect the following error response:", "keyword" : "And ", "line" : 116, "doc_string" : { "value" : "\t{\n\t \"Errors\": [\"Attribute active flag must be specified.\"]\n\t}", "line" : 117, "content_type" : "" }, "match" : { "location" : "HttpSteps.I_expect_the_following_error_response(String)" } } ], "type" : "scenario" } ], "uri" : "features\defining_invalid_attributes.feature" }, { "id" : "defining-valid-attributes", "description" : "", "name" : "Defining valid attributes", "keyword" : "Feature", "line" : 1, "elements" : [{ "id" : "defining-valid-attributes;defining-a-new-attribute-with-all-fields", "description" : "", "name" : "Defining a new attribute with all fields", "keyword" : "Scenario", "line" : 3, "steps" : [{ "name" : "I PUT to /attribute/ondivp:", "keyword" : "When ", "line" : 4, "doc_string" : { "value" : "\t{\r\n\t \"Desc\": \"इ लव बà¥à¤²à¥‚बेरी डेनिश\",\r\n\t \"Name\": \"ールドãƒã‚¤ãƒ“ー課ã®\",\r\n\t \"IsSecure\": false,\r\n\t \"StartDate\": \"12/15/2012 06:00\",\r\n\t \"EndDate\": \"01/01/2014 18:00\",\r\n\t \"IsActive\": true\r\n\t}", "line" : 5, "content_type" : "" } }, { "name" : "I expect to get an HTTP response code of 204", "keyword" : "Then ", "line" : 15 }, { "result" : { "duration" : 4081387, "status" : "passed" }, "name" : "attribute \"ondivp\" should be defined with the following properties:", "keyword" : "And ", "line" : 16, "match" : { "arguments" : [{ "val" : "ondivp", "offset" : 11 } ], "location" : "AttributeDefinitionSteps.attribute_should_be_defined_with_the_following_properties(String,DataTable)" }, "rows" : [{ "cells" : ["Description", "Name", "Short Name", "Secure", "StartDate", "EndDate", "Active"], "line" : 17 }, { "cells" : ["इ लव बà¥à¤²à¥‚बेरी डेनिश", "ールドãƒã‚¤ãƒ“ー課ã®", "ondivp", "false", "12/15/2012 06:00", "01/01/2014 18:00", "true"], "line" : 18 } ] } ], "type" : "scenario" }, { "id" : "defining-valid-attributes;defining-a-new-attribute-without-start-and-end-date-should-use-default-dates", "description" : "", "name" : "Defining a new attribute without start and end date should use default dates", "keyword" : "Scenario", "line" : 20, "steps" : [{ "name" : "I PUT to /attribute/ondivp:", "keyword" : "When ", "line" : 21, "doc_string" : { "value" : "\t{\r\n\t \"Desc\": \"I love blueberry danish\",\r\n\t \"Name\": \"old navy div pref\",\r\n\t \"IsSecure\": false,\r\n\t \"IsActive\": true\r\n\t}", "line" : 22, "content_type" : "" } }, { "name" : "I expect to get an HTTP response code of 204", "keyword" : "Then ", "line" : 30 }, { "result" : { "duration" : 3864632, "status" : "passed" }, "name" : "attribute \"ondivp\" should be defined with the following properties:", "keyword" : "And ", "line" : 31, "match" : { "arguments" : [{ "val" : "ondivp", "offset" : 11 } ], "location" : "AttributeDefinitionSteps.attribute_should_be_defined_with_the_following_properties(String,DataTable)" }, "rows" : [{ "cells" : ["Description", "Name", "Short name", "Secure", "StartDate", "EndDate", "Active"], "line" : 32 }, { "cells" : ["I love blueberry danish", "old navy div pref", "ondivp", "false", "Today", "01/01/2200 00:00", "true"], "line" : 33 } ] } ], "type" : "scenario" }, { "id" : "defining-valid-attributes;putting-into-an-existing-attribute-should-override-all-fields", "description" : "", "name" : "Putting into an existing attribute should override all fields", "keyword" : "Scenario", "line" : 36, "steps" : [{ "name" : "the attribute \"ondivp\" has been defined as", "keyword" : "Given ", "line" : 37, "rows" : [{ "cells" : ["Description", "Name", "Short name", "Secure", "StartDate", "EndDate", "Active"], "line" : 38 }, { "cells" : ["I love blueberry danish", "old navy div pref", "ondivp", "true", "Today", "01/01/2200 00:00", "false"], "line" : 39 } ] }, { "name" : "I PUT to /attribute/ondivp:", "keyword" : "When ", "line" : 40, "doc_string" : { "value" : "\t{\r\n\t \"Desc\": \"I hate blueberry danish\",\r\n\t \"Name\": \"sad old navy div pref\",\r\n\t \"StartDate\": \"11/03/2014 06:30\",\r\n\t \"EndDate\": \"11/06/2015 06:30\",\r\n\t \"IsSecure\": false,\r\n\t \"IsActive\": true\r\n\t}", "line" : 41, "content_type" : "" } }, { "name" : "I expect to get an HTTP response code of 204", "keyword" : "Then ", "line" : 51 }, { "result" : { "duration" : 4216037, "status" : "passed" }, "name" : "attribute \"ondivp\" should be defined with the following properties:", "keyword" : "And ", "line" : 52, "match" : { "arguments" : [{ "val" : "ondivp", "offset" : 11 } ], "location" : "AttributeDefinitionSteps.attribute_should_be_defined_with_the_following_properties(String,DataTable)" }, "rows" : [{ "cells" : ["Description", "Name", "Short name", "Secure", "StartDate", "EndDate", "Active"], "line" : 53 }, { "cells" : ["I hate blueberry danish", "sad old navy div pref", "ondivp", "false", "11/03/2014 06:30", "11/06/2015 06:30", "true"], "line" : 54 } ] } ], "type" : "scenario" } ], "uri" : "features\defining_valid_attributes.feature" }, { "id" : "retrieving-attribute-values", "description" : "", "name" : "Retrieving attribute values", "keyword" : "Feature", "line" : 1, "elements" : [{ "id" : "retrieving-attribute-values;retrieving-visitor-attribute-values-for-multiple-ids", "description" : "", "name" : "Retrieving visitor attribute values for multiple IDs", "keyword" : "Scenario", "line" : 3, "steps" : [{ "name" : "visitor with Id unknownShopperId_1234 has attributes:", "keyword" : "Given ", "line" : 4, "rows" : [{ "cells" : ["Name", "Value", "StartDate", "EndDate"], "line" : 5 }, { "cells" : ["ondivp", "C", "Yesterday", "Tomorrow"], "line" : 6 }, { "cells" : ["onjpdivp", "D", "Yesterday", "Tomorrow"], "line" : 7 } ] }, { "name" : "visitor with Id cust_3456 has attributes:", "keyword" : "And ", "line" : 8, "rows" : [{ "cells" : ["Name", "Value", "StartDate", "EndDate"], "line" : 9 }, { "cells" : ["onjpdivp", "F", "Yesterday", "Tomorrow"], "line" : 10 } ] }, { "name" : "I request GET /visitor/unknownShopperId_1234,cust_3456", "keyword" : "When ", "line" : 11 }, { "result" : { "duration" : 5787916, "status" : "passed" }, "name" : "I expect the following visitor attribute response:", "keyword" : "Then ", "line" : 12, "doc_string" : { "value" : " [{\n \"Id\": \"unknownShopperId_1234\",\n \"Attributes\": [{\n \"Name\": \"ondivp\",\n \"Value\": \"C\",\n \"StartDate\": \"Yesterday\",\n \"EndDate\": \"Tomorrow\"\n }, {\n \"Name\": \"onjpdivp\",\n \"Value\": \"D\",\n \"StartDate\": \"Yesterday\",\n \"EndDate\": \"Tomorrow\"\n }]\n }, {\n \"Id\": \"cust_3456\",\n \"Attributes\": [{\n \"Name\": \"onjpdivp\",\n \"Value\": \"F\",\n \"StartDate\": \"Yesterday\",\n \"EndDate\": \"Tomorrow\"\n }]\n }] ", "line" : 13, "content_type" : "" }, "match" : { "location" : "AttributeValueSteps.I_expect_the_following_json_response(String)" } } ], "type" : "scenario" }, { "id" : "retrieving-attribute-values;retrieving-visitor-attribute-values-for-specified-attribute-short-names", "description" : "", "name" : "Retrieving visitor attribute values for specified attribute short names", "keyword" : "Scenario", "line" : 38, "steps" : [{ "name" : "visitor with Id unknownShopperId_1234 has attributes:", "keyword" : "Given ", "line" : 39, "rows" : [{ "cells" : ["Name", "Value", "StartDate", "EndDate"], "line" : 40 }, { "cells" : ["ondivp", "C", "Yesterday", "Tomorrow"], "line" : 41 }, { "cells" : ["onjpdivp", "D", "Yesterday", "Tomorrow"], "line" : 42 }, { "cells" : ["brdivp", "E", "Yesterday", "Tomorrow"], "line" : 43 } ] }, { "name" : "I request GET /visitor/unknownShopperId_1234?attr\u003dondivp,brdivp,brjpdivp", "keyword" : "When ", "line" : 44 }, { "result" : { "duration" : 1759077, "status" : "passed" }, "name" : "I expect the following visitor attribute response:", "keyword" : "Then ", "line" : 45, "doc_string" : { "value" : "[{\n\"Id\": \"unknownShopperId_1234\",\n\"Attributes\": [{\n \"Name\": \"ondivp\",\n \"Value\": \"C\",\n \"StartDate\": \"Yesterday\",\n \"EndDate\": \"Tomorrow\"\n}, {\n \"Name\": \"brdivp\",\n \"Value\": \"E\",\n \"StartDate\": \"Yesterday\",\n \"EndDate\": \"Tomorrow\"\n}]\n}] ", "line" : 46, "content_type" : "" }, "match" : { "location" : "AttributeValueSteps.I_expect_the_following_json_response(String)" } } ], "type" : "scenario" }, { "id" : "retrieving-attribute-values;retrieving-active-and-unexpired-visitor-attribute-values-with-preview-date", "description" : "", "name" : "Retrieving active and unexpired visitor attribute values with preview date", "keyword" : "Scenario", "line" : 63, "steps" : [{ "name" : "visitor with Id unknownShopperId_1234 has attributes:", "keyword" : "Given ", "line" : 64, "rows" : [{ "cells" : ["Name", "Value", "Active", "StartDate", "EndDate"], "line" : 65 }, { "cells" : ["still", "C", "true", "Yesterday", "Yesterday"], "line" : 66 }, { "cells" : ["a-", "C", "true", "Yesterday", "Today"], "line" : 67 }, { "cells" : ["live", "C", "false", "Yesterday", "Tomorrow"], "line" : 68 }, { "cells" : ["extinct", "E", "true", "Today", "Today"], "line" : 69 }, { "cells" : ["dormant", "E", "true", "Today", "Tomorrow"], "line" : 70 }, { "cells" : ["hidden", "E", "true", "Tomorrow", "Tomorrow"], "line" : 71 } ] }, { "name" : "I request GET /visitor/unknownShopperId_1234?previewDate\u003dYesterday", "keyword" : "When ", "line" : 72 }, { "result" : { "duration" : 1484849, "status" : "passed" }, "name" : "I expect the following visitor attribute response:", "keyword" : "Then ", "line" : 73, "doc_string" : { "value" : " [{\n\t \"Id\": \"unknownShopperId_1234\",\n\t \"Attributes\": [{\n\t \"Name\": \"still\",\n\t \"Value\": \"C\",\n\t \"StartDate\": \"Yesterday\",\n\t \"EndDate\": \"Yesterday\"\n\t }, {\n\t \"Name\": \"a-\",\n\t \"Value\": \"C\",\n\t \"StartDate\": \"Yesterday\",\n\t \"EndDate\": \"Today\"\n\t }]\n\t}]", "line" : 74, "content_type" : "" }, "match" : { "location" : "AttributeValueSteps.I_expect_the_following_json_response(String)" } } ], "type" : "scenario" }, { "id" : "retrieving-attribute-values;retrieving-active-and-unexpired-visitor-attribute-values-without-specifying-preview-date", "description" : "", "name" : "Retrieving active and unexpired visitor attribute values without specifying preview date", "keyword" : "Scenario", "line" : 91, "steps" : [{ "name" : "visitor with Id unknownShopperId_1234 has attributes:", "keyword" : "Given ", "line" : 92, "rows" : [{ "cells" : ["Name", "Value", "Active", "StartDate", "EndDate"], "line" : 93 }, { "cells" : ["still", "C", "true", "Yesterday", "Today"], "line" : 94 }, { "cells" : ["a-", "C", "true", "Today", "Tomorrow"], "line" : 95 }, { "cells" : ["live", "C", "true", "Today", "Today"], "line" : 96 }, { "cells" : ["extinct", "E", "true", "Yes

kingsleyh commented 11 years ago

Awesome :) - glad it worked

Sent from my iPad

On 7 Jan 2013, at 23:15, langvtran notifications@github.com wrote:

Hi Kingsley,

Thanks for the explanation, I did see that previous bug report but didn't realize every step required a result. Looks to be ok with 1.0.8.

Lang


From: Kingsley Hendrickse notifications@github.com To: masterthought/cucumber-reporting cucumber-reporting@noreply.github.com Cc: langvtran langvtran@yahoo.com Sent: Monday, January 7, 2013 12:50 PM Subject: Re: [cucumber-reporting] doc_string fields results in "Result was missing for this step" (#10)

Hi

Every step that does not have a result section in the json will report - Result was missing for this step - because the plugin requires a result for each step to work out if the step passed or failed. There was a bug in cucumber-jvm from all versions after 1.0.8 that caused the json report to be generated with out the result section. So if you are using cucumber-jvm - you should move to version 1.0.8 for the plugin to work. If you are not using cucumber -jvm then there is also a bug with the json generation in whichever version you are using.

I don't believe this is related to the doc_string in any way.

Let me know if anything I have just said solves your issue :)

--K

On 7 Jan 2013, at 18:24, langvtran notifications@github.com wrote:

My report is generating a lot of "Result was missing for this step". Appears to be from the doc_string field in my generated json report.

cucumber_1.json

[{ "id" : "command-line-interface-for-pas", "description" : "", "name" : "Command Line Interface for PAS", "keyword" : "Feature", "line" : 1, "uri" : "features/command_line_interface.feature" }, { "id" : "adding-invalid-attribute-values", "description" : "", "name" : "Adding invalid attribute values", "keyword" : "Feature", "line" : 1, "elements" : [{ "id" : "adding-invalid-attribute-values;adding-a-visitor-attribute-value-for-a-non-valid-attribute-should-return-http-400-and-attribute-shouldnt-be-stored", "description" : "", "name" : "Adding a visitor attribute value for a non-valid attribute should return HTTP 400 and attribute shouldnt be stored", "keyword" : "Scenario", "line" : 3, "steps" : [{ "name" : "visitor with Id unknownShopperId_1234 has no attributes", "keyword" : "Given ", "line" : 4 }, { "name" : "the attribute \"invalidAttribute\" has NOT been defined", "keyword" : "And ", "line" : 5 }, { "name" : "I PUT to /visitor/unknownShopperId_1234:", "keyword" : "When ", "line" : 6, "doc_string" : { "value" : "\t{\n\t \"Id\": \"unknownShopperId_1234\",\n\t \"Attributes\": [{\n\t \"Name\": \"invalidAttribute\",\n\t \"Value\": \"not\",\n\t \"StartDate\": \"Yesterday\",\n\t \"EndDate\": \"Tomorrow\"\n\t }]\n\t}", "line" : 7, "content_type" : "" } }, { "name" : "I expect to get an HTTP response code of 400", "keyword" : "Then ", "line" : 18 }, { "name" : "I expect the following error response:", "keyword" : "And ", "line" : 19, "doc_string" : { "value" : "\t{\n\t \"Errors\": [\"Attribute invalidAttribute is not defined.\"]\n\t}", "line" : 20, "content_type" : "" } }, { "result" : { "duration" : 42913261, "status" : "passed" }, "name" : "visitor with id unknownShopperId_1234 should have no attributes", "keyword" : "And ", "line" : 25, "match" : { "arguments" : [{ "val" : "unknownShopperId_1234", "offset" : 16 } ], "location" : "AttributeValueSteps.visitor_with_id_unknownShopperId_has_no_attributes(String)" } } ], "type" : "scenario" }, { "id" : "adding-invalid-attribute-values;adding-an-attribute-value-with-start-date-greater-than-end-date-should-return-http-400-and-attribute-shouldn\u0027t-be-stored.", "description" : "", "name" : "Adding an attribute value with start date greater than end date should return HTTP 400 and attribute shouldn\u0027t be stored.", "keyword" : "Scenario", "line" : 27, "steps" : [{ "name" : "visitor with Id unknownShopperId_594 has no attributes", "keyword" : "Given ", "line" : 28 }, { "name" : "the attribute \"ondivp\" has been defined", "keyword" : "And ", "line" : 29 }, { "name" : "I PUT to /visitor/unknownShopperId_594:", "keyword" : "When ", "line" : 30, "doc_string" : { "value" : "\t{\n\t \"Id\": \"unknownShopperId_594\",\n\t \"Attributes\": [{\n\t \"Name\": \"ondivp\",\n\t \"Value\": \"B\",\n\t \t\"StartDate\":\"Tomorrow\",\n\t\t\t\"EndDate\":\"Yesterday\"\n\t }]\n\t}", "line" : 31, "content_type" : "" } }, { "name" : "I expect to get an HTTP response code of 400", "keyword" : "Then ", "line" : 42 }, { "name" : "I expect the following error response:", "keyword" : "And ", "line" : 43, "doc_string" : { "value" : "\t{\n\t\t\"Errors\":[\"End date should be after start date.\"]\n\t}", "line" : 44, "content_type" : "" } }, { "result" : { "duration" : 28017966, "status" : "passed" }, "name" : "visitor with id unknownShopperId_594 should have no attributes", "keyword" : "And ", "line" : 49, "match" : { "arguments" : [{ "val" : "unknownShopperId_594", "offset" : 16 } ], "location" : "AttributeValueSteps.visitor_with_id_unknownShopperId_has_no_attributes(String)" } } ], "type" : "scenario" }, { "id" : "adding-invalid-attribute-values;adding-an-attribute-value-with-invalid-start-or-end-dates-should-return-http-400-and-attribute-shouldn\u0027t-be-stored.", "description" : "", "name" : "Adding an attribute value with invalid start or end dates should return HTTP 400 and attribute shouldn\u0027t be stored.", "keyword" : "Scenario", "line" : 51, "steps" : [{ "name" : "visitor with Id unknownShopperId_594 has no attributes", "keyword" : "Given ", "line" : 52 }, { "name" : "the attribute \"ondivp\" has been defined", "keyword" : "And ", "line" : 53 }, { "name" : "I PUT to /visitor/unknownShopperId_594:", "keyword" : "When ", "line" : 54, "doc_string" : { "value" : "\t{\n\t \"Id\": \"unknownShopperId_594\",\n\t \"Attributes\": [{\n\t \"Name\": \"ondivp\",\n\t \"Value\": \"C\",\n\t \"StartDate\": \"12/35/2011 12:00\",\n\t \"EndDate\": \"02/15/2012 18:00\"\n\t }]\n\t}", "line" : 55, "content_type" : "" } }, { "name" : "I expect to get an HTTP response code of 400", "keyword" : "Then ", "line" : 66 }, { "name" : "I expect the following error response:", "keyword" : "And ", "line" : 67, "doc_string" : { "value" : "\t{\n\t \"Errors\": [\"Invalid date value. 12/35/2011 12:00\"]\n\t}", "line" : 68, "content_type" : "" } }, { "result" : { "duration" : 28418633, "status" : "passed" }, "name" : "visitor with id unknownShopperId_594 should have no attributes", "keyword" : "And ", "line" : 73, "match" : { "arguments" : [{ "val" : "unknownShopperId_594", "offset" : 16 } ], "location" : "AttributeValueSteps.visitor_with_id_unknownShopperId_has_no_attributes(String)" } } ], "type" : "scenario" }, { "id" : "adding-invalid-attribute-values;attempting-to-add-attribute-values-with-name-missing-should-return-http-400-and-attribute-shouldn\u0027t-be-stored.", "description" : "", "name" : "Attempting to add attribute values with name missing should return HTTP 400 and attribute shouldn\u0027t be stored.", "keyword" : "Scenario", "line" : 75, "steps" : [{ "name" : "visitor with Id unknownShopperId_594 has no attributes", "keyword" : "Given ", "line" : 76 }, { "name" : "the attribute \"ondivp\" has been defined", "keyword" : "And ", "line" : 77 }, { "name" : "I PUT to /visitor/unknownShopperId_594:", "keyword" : "When ", "line" : 78, "doc_string" : { "value" : "\t{\n\t \"Attributes\": [{\n\t \"Value\": \"C\",\n\t \"StartDate\": \"12/15/2011 12:00\",\n\t \"EndDate\": \"02/15/2012 18:00\"\n\t }]\n\t}", "line" : 79, "content_type" : "" } }, { "name" : "I expect to get an HTTP response code of 400", "keyword" : "Then ", "line" : 88 }, { "name" : "I expect the following error response:", "keyword" : "And ", "line" : 89, "doc_string" : { "value" : "\t{\n\t \"Errors\": [\"Attribute short name must be specified.\"]\n\t}", "line" : 90, "content_type" : "" } }, { "result" : { "duration" : 27286419, "status" : "passed" }, "name" : "visitor with id unknownShopperId_594 should have no attributes", "keyword" : "And ", "line" : 95, "match" : { "arguments" : [{ "val" : "unknownShopperId_594", "offset" : 16 } ], "location" : "AttributeValueSteps.visitor_with_id_unknownShopperId_has_no_attributes(String)" } } ], "type" : "scenario" }, { "id" : "adding-invalid-attribute-values;attempting-to-add-attribute-values-with-value-missing-should-return-http-400-and-attribute-shouldn\u0027t-be-stored.", "description" : "", "name" : "Attempting to add attribute values with value missing should return HTTP 400 and attribute shouldn\u0027t be stored.", "keyword" : "Scenario", "line" : 97, "steps" : [{ "name" : "visitor with Id unknownShopperId_594 has no attributes", "keyword" : "Given ", "line" : 98 }, { "name" : "the attribute \"ondivp\" has been defined", "keyword" : "And ", "line" : 99 }, { "name" : "I PUT to /visitor/unknownShopperId_594:", "keyword" : "When ", "line" : 100, "doc_string" : { "value" : "\t{\n\t \"Attributes\": [{\n\t \"Name\": \"ondivp\",\n\t \"StartDate\": \"12/15/2011 12:00\",\n\t \"EndDate\": \"02/15/2012 18:00\"\n\t }]\n\t}", "line" : 101, "content_type" : "" } }, { "name" : "I expect to get an HTTP response code of 400", "keyword" : "Then ", "line" : 110 }, { "name" : "I expect the following error response:", "keyword" : "And ", "line" : 111, "doc_string" : { "value" : "\t{\n\t \"Errors\": [\"Attribute value must be specified.\"]\n\t}", "line" : 112, "content_type" : "" } }, { "result" : { "duration" : 29059864, "status" : "passed" }, "name" : "visitor with id unknownShopperId_594 should have no attributes", "keyword" : "And ", "line" : 117, "match" : { "arguments" : [{ "val" : "unknownShopperId_594", "offset" : 16 } ], "location" : "AttributeValueSteps.visitor_with_id_unknownShopperId_has_no_attributes(String)" } } ], "type" : "scenario" } ], "uri" : "features\adding_invalid_attribute_values.feature" }, { "id" : "adding-valid-attribute-values", "description" : "", "name" : "Adding valid attribute values", "keyword" : "Feature", "line" : 1, "elements" : [{ "id" : "adding-valid-attribute-values;adding-an-attribute-value-with-valid-start-and-end-dates-should-return-http-204-and-store-the-attribute-value.", "description" : "", "name" : "Adding an attribute value with valid start and end dates should return HTTP 204 and store the attribute value.", "keyword" : "Scenario", "line" : 3, "steps" : [{ "name" : "visitor with Id unknownShopperId_594 has no attributes", "keyword" : "Given ", "line" : 4 }, { "name" : "the attribute \"ondivp\" has been defined", "keyword" : "And ", "line" : 5 }, { "name" : "I PUT to /visitor/unknownShopperId_594:", "keyword" : "When ", "line" : 6, "doc_string" : { "value" : "\t{\r\n\t \"Id\": \"unknownShopperId_594\",\r\n\t \"Attributes\": [{\r\n\t \"Name\": \"ondivp\",\r\n\t \"Value\": \"B\",\r\n\t \"StartDate\": \"Yesterday\",\r\n\t \"EndDate\": \"Tomorrow\"\r\n\t }]\r\n\t}", "line" : 7, "content_type" : "" } }, { "name" : "I expect to get an HTTP response code of 204", "keyword" : "Then ", "line" : 18 }, { "result" : { "duration" : 6666018, "status" : "passed" }, "name" : "visitor with id unknownShopperId_594 should have attributes", "keyword" : "And ", "line" : 19, "match" : { "arguments" : [{ "val" : "unknownShopperId_594", "offset" : 16 } ], "location" : "AttributeValueSteps.visitor_with_Id_unknown_should_have_attributes(String,DataTable)" }, "rows" : [{ "cells" : ["Name", "Value", "StartDate", "EndDate"], "line" : 20 }, { "cells" : ["ondivp", "B", "Yesterday", "Tomorrow"], "line" : 21 } ] } ], "type" : "scenario" }, { "id" : "adding-valid-attribute-values;adding-an-attribute-value-without-dates-should-store-it-with-attribute-definitions-dates-and-return-http-204.", "description" : "", "name" : "Adding an attribute value without dates should store it with attribute definitions dates and return HTTP 204.", "keyword" : "Scenario", "line" : 23, "steps" : [{ "name" : "visitor with Id unknownShopperId_594 has no attributes", "keyword" : "Given ", "line" : 24 }, { "name" : "the attribute \"ondivp\" has been defined as", "keyword" : "And ", "line" : 25, "rows" : [{ "cells" : ["Description", "Name", "Short Name", "Secure", "StartDate", "EndDate", "Active"], "line" : 26 }, { "cells" : ["Attribute Description", "Attribute Name", "ondivp", "false", "12/15/2012 06:00", "01/01/2014 18:00", "true"], "line" : 27 } ] }, { "name" : "I PUT to /visitor/unknownShopperId_594:", "keyword" : "When ", "line" : 28, "doc_string" : { "value" : "{\t\"Id\": \"unknownShopperId_594\",\r\n\t\"Attributes\":\r\n\t[{\"Name\":\"ondivp\",\r\n\t\"Value\":\"B\",\r\n\t\"StartDate\":\"\",\r\n\t\"EndDate\":\"\"}]}", "line" : 29, "content_type" : "" } }, { "name" : "I expect to get an HTTP response code of 204", "keyword" : "Then ", "line" : 37 }, { "result" : { "duration" : 3665530, "status" : "passed" }, "name" : "visitor with id unknownShopperId_594 should have attributes", "keyword" : "And ", "line" : 38, "match" : { "arguments" : [{ "val" : "unknownShopperId_594", "offset" : 16 } ], "location" : "AttributeValueSteps.visitor_with_Id_unknown_should_have_attributes(String,DataTable)" }, "rows" : [{ "cells" : ["Name", "Value", "StartDate", "EndDate"], "line" : 39 }, { "cells" : ["ondivp", "B", "12/15/2012 06:00", "01/01/2014 18:00"], "line" : 40 } ] } ], "type" : "scenario" }, { "id" : "adding-valid-attribute-values;fully-qualified-visitor-id-has-not-specific-format-yet", "description" : "", "name" : "Fully qualified visitor id has not specific format yet", "keyword" : "Scenario", "line" : 44, "steps" : [{ "name" : "visitor with Id aVisitorId has no attributes", "keyword" : "Given ", "line" : 45 }, { "name" : "the attribute \"ondivp\" has been defined", "keyword" : "And ", "line" : 46 }, { "name" : "I PUT to /visitor/aVisitorId:", "keyword" : "When ", "line" : 47, "doc_string" : { "value" : "\t{\r\n\t \"Attributes\": [{\r\n\t \"Name\": \"ondivp\",\r\n\t \"Value\": \"B\",\r\n\t \"StartDate\": \"Yesterday\",\r\n\t \"EndDate\": \"Tomorrow\"\r\n\t }]\r\n\t}", "line" : 48, "content_type" : "" } }, { "name" : "I expect to get an HTTP response code of 204", "keyword" : "Then ", "line" : 58 }, { "result" : { "duration" : 3238179, "status" : "passed" }, "name" : "visitor with id aVisitorId should have attributes", "keyword" : "And ", "line" : 59, "match" : { "arguments" : [{ "val" : "aVisitorId", "offset" : 16 } ], "location" : "AttributeValueSteps.visitor_with_Id_unknown_should_have_attributes(String,DataTable)" }, "rows" : [{ "cells" : ["Name", "Value", "StartDate", "EndDate"], "line" : 60 }, { "cells" : ["ondivp", "B", "Yesterday", "Tomorrow"], "line" : 61 } ] } ], "type" : "scenario" }, { "id" : "adding-valid-attribute-values;updating-attribute-values-for-a-specific-user", "description" : "", "name" : "Updating attribute values for a specific user", "keyword" : "Scenario", "line" : 63, "steps" : [{ "name" : "the attribute \"ondivp\" has been defined", "keyword" : "Given ", "line" : 64 }, { "name" : "the attribute \"onjpdivp\" has been defined", "keyword" : "And ", "line" : 65 }, { "name" : "visitor with Id unknownShopperId_1234 has attributes:", "keyword" : "And ", "line" : 66, "rows" : [{ "cells" : ["Name", "Value", "StartDate", "EndDate"], "line" : 67 }, { "cells" : ["ondivp", "C", "Yesterday", "Tomorrow"], "line" : 68 }, { "cells" : ["onjpdivp", "D", "Yesterday", "Tomorrow"], "line" : 69 } ] }, { "name" : "I PUT to /visitor/unknownShopperId_1234:", "keyword" : "When ", "line" : 70, "doc_string" : { "value" : "\t{\r\n\t \"Id\": \"unknownShopperId_1234\",\r\n\t \"Attributes\": [{\r\n\t \"Name\": \"ondivp\",\r\n\t \"Value\": \"A\",\r\n\t \"StartDate\": \"12/15/2012 06:00\",\r\n\t \"EndDate\": \"01/01/2014 18:00\"\r\n\t }]\r\n\t}", "line" : 71, "content_type" : "" } }, { "name" : "I expect to get an HTTP response code of 204", "keyword" : "Then ", "line" : 82 }, { "result" : { "duration" : 7344197, "status" : "passed" }, "name" : "visitor with id unknownShopperId_1234 should have attributes", "keyword" : "And ", "line" : 83, "match" : { "arguments" : [{ "val" : "unknownShopperId_1234", "offset" : 16 } ], "location" : "AttributeValueSteps.visitor_with_Id_unknown_should_have_attributes(String,DataTable)" }, "rows" : [{ "cells" : ["Name", "Value", "StartDate", "EndDate"], "line" : 84 }, { "cells" : ["ondivp", "A", "12/15/2012 06:00", "01/01/2014 18:00"], "line" : 85 }, { "cells" : ["onjpdivp", "D", "Yesterday", "Tomorrow"], "line" : 86 } ] } ], "type" : "scenario" } ], "uri" : "features\adding_valid_attribute_values.feature" }, { "id" : "defining-invalid-attributes", "description" : "", "name" : "Defining invalid attributes", "keyword" : "Feature", "line" : 1, "elements" : [{ "id" : "defining-invalid-attributes;defining-an-attribute-with-start-date-after-end-date-should-return-400-with-proper-error-message", "description" : "", "name" : "Defining an attribute with start date after end date should return 400 with proper error message", "keyword" : "Scenario", "line" : 3, "steps" : [{ "name" : "I PUT to /attribute/ondivp:", "keyword" : "When ", "line" : 4, "doc_string" : { "value" : "\t{\n\t \"Desc\": \"description is described\",\n\t \"Name\": \"name is named\",\n\t \"IsSecure\": false,\n\t \"StartDate\": \"12/15/2014 06:00\",\n\t \"EndDate\": \"01/01/2012 18:00\",\n\t \"IsActive\": true\n\t}", "line" : 5, "content_type" : "" } }, { "name" : "I expect to get an HTTP response code of 400", "keyword" : "Then ", "line" : 15 }, { "result" : { "duration" : 256574, "status" : "passed" }, "name" : "I expect the following error response:", "keyword" : "And ", "line" : 16, "doc_string" : { "value" : "\t{\n\t \"Errors\": [\"End date must be after start date.\"]\n\t}", "line" : 17, "content_type" : "" }, "match" : { "location" : "HttpSteps.I_expect_the_following_error_response(String)" } } ], "type" : "scenario" }, { "id" : "defining-invalid-attributes;defining-an-attribute-with-invalid-start-or-end-date-should-return-400-with-proper-error-message", "description" : "", "name" : "Defining an attribute with invalid start or end date should return 400 with proper error message", "keyword" : "Scenario", "line" : 22, "steps" : [{ "name" : "I PUT to /attribute/ondivp:", "keyword" : "When ", "line" : 23, "doc_string" : { "value" : "\t{\n\t \"Desc\": \"description is described\",\n\t \"Name\": \"name is named\",\n\t \"IsSecure\": false,\n\t \"StartDate\": \"12/35/2011 06:00\",\n\t \"EndDate\": \"01/01/2012 18:00\",\n\t \"IsActive\": true\n\t}", "line" : 24, "content_type" : "" } }, { "name" : "I expect to get an HTTP response code of 400", "keyword" : "Then ", "line" : 34 }, { "result" : { "duration" : 234818, "status" : "passed" }, "name" : "I expect the following error response:", "keyword" : "And ", "line" : 35, "doc_string" : { "value" : "\t{\n\t \"Errors\": [\"Invalid date value. 12/35/2011 06:00\"]\n\t}", "line" : 36, "content_type" : "" }, "match" : { "location" : "HttpSteps.I_expect_the_following_error_response(String)" } } ], "type" : "scenario" }, { "id" : "defining-invalid-attributes;defining-an-attribute-with-blank-description-field-should-return-400-with-proper-error-message", "description" : "", "name" : "Defining an attribute with blank description field should return 400 with proper error message", "keyword" : "Scenario", "line" : 42, "steps" : [{ "name" : "I PUT to /attribute/ondivp:", "keyword" : "When ", "line" : 43, "doc_string" : { "value" : "\t{\n\t \"Desc\": \"\",\n\t \"Name\": \"name is named\",\n\t \"IsSecure\": false,\n\t \"StartDate\": \"12/15/2012 06:00\",\n\t \"EndDate\": \"01/01/2014 18:00\",\n\t \"IsActive\": true\n\t}", "line" : 44, "content_type" : "" } }, { "name" : "I expect to get an HTTP response code of 400", "keyword" : "Then ", "line" : 54 }, { "result" : { "duration" : 482360, "status" : "passed" }, "name" : "I expect the following error response:", "keyword" : "And ", "line" : 55, "doc_string" : { "value" : "\t{\n\t\t\"Errors\":[\"Attribute description must be specified.\"]\n\t}", "line" : 56, "content_type" : "" }, "match" : { "location" : "HttpSteps.I_expect_the_following_error_response(String)" } } ], "type" : "scenario" }, { "id" : "defining-invalid-attributes;defining-an-attribute-with-blank-name-field-should-return-400-with-proper-error-message", "description" : "", "name" : "Defining an attribute with blank name field should return 400 with proper error message", "keyword" : "Scenario", "line" : 63, "steps" : [{ "name" : "I PUT to /attribute/ondivp:", "keyword" : "When ", "line" : 64, "doc_string" : { "value" : "\t{\n\t \"Desc\": \"Description is described\",\n\t \"Name\": \"\",\n\t \"IsSecure\": false,\n\t \"StartDate\": \"12/15/2012 06:00\",\n\t \"EndDate\": \"01/01/2014 18:00\",\n\t \"IsActive\": true\n\t}", "line" : 65, "content_type" : "" } }, { "name" : "I expect to get an HTTP response code of 400", "keyword" : "Then ", "line" : 75 }, { "result" : { "duration" : 240564, "status" : "passed" }, "name" : "I expect the following error response:", "keyword" : "And ", "line" : 76, "doc_string" : { "value" : "\t{\n\t\t\"Errors\":[\"Attribute name must be specified.\"]\n\t}", "line" : 77, "content_type" : "" }, "match" : { "location" : "HttpSteps.I_expect_the_following_error_response(String)" } } ], "type" : "scenario" }, { "id" : "defining-invalid-attributes;defining-attribute-without-issecure-flag-should-return-400-with-proper-error-message", "description" : "", "name" : "Defining attribute without isSecure flag should return 400 with proper error message", "keyword" : "Scenario", "line" : 84, "steps" : [{ "name" : "I PUT to /attribute/ondivp:", "keyword" : "When ", "line" : 85, "doc_string" : { "value" : "\t{\n\t \"Desc\": \"This is the Old Navy division preference attribute generated by big data used by Ecom with values A, B, C \",\n\t \"Name\": \"Old Navy Division Preference\",\n\t \"StartDate\": \"11/02/2013 06:30\",\n\t \"EndDate\": \"11/05/2013 06:30\",\n\t \"IsActive\": true\n\t}", "line" : 86, "content_type" : "" } }, { "name" : "I expect to get an HTTP response code of 400", "keyword" : "Then ", "line" : 95 }, { "result" : { "duration" : 508634, "status" : "passed" }, "name" : "I expect the following error response:", "keyword" : "And ", "line" : 96, "doc_string" : { "value" : "\t{\n\t\t\"Errors\":[\"Attribute secure flag must be specified.\"]\n\t}", "line" : 97, "content_type" : "" }, "match" : { "location" : "HttpSteps.I_expect_the_following_error_response(String)" } } ], "type" : "scenario" }, { "id" : "defining-invalid-attributes;defining-attribute-without-isactive-flag-should-return-400-with-proper-error-message", "description" : "", "name" : "Defining attribute without isActive flag should return 400 with proper error message", "keyword" : "Scenario", "line" : 104, "steps" : [{ "name" : "I PUT to /attribute/ondivp:", "keyword" : "When ", "line" : 105, "doc_string" : { "value" : "\t{\n\t \"Desc\": \"This is the Old Navy division preference attribute generated by big data used by Ecom with values A, B, C \",\n\t \"Name\": \"Old Navy Division Preference\",\n\t \"StartDate\": \"11/03/2013 06:30\",\n\t \"EndDate\": \"11/06/2013 06:30\",\n\t \"IsSecure\": false\n\t}", "line" : 106, "content_type" : "" } }, { "name" : "I expect to get an HTTP response code of 400", "keyword" : "Then ", "line" : 115 }, { "result" : { "duration" : 267659, "status" : "passed" }, "name" : "I expect the following error response:", "keyword" : "And ", "line" : 116, "doc_string" : { "value" : "\t{\n\t \"Errors\": [\"Attribute active flag must be specified.\"]\n\t}", "line" : 117, "content_type" : "" }, "match" : { "location" : "HttpSteps.I_expect_the_following_error_response(String)" } } ], "type" : "scenario" } ], "uri" : "features\defining_invalid_attributes.feature" }, { "id" : "defining-valid-attributes", "description" : "", "name" : "Defining valid attributes", "keyword" : "Feature", "line" : 1, "elements" : [{ "id" : "defining-valid-attributes;defining-a-new-attribute-with-all-fields", "description" : "", "name" : "Defining a new attribute with all fields", "keyword" : "Scenario", "line" : 3, "steps" : [{ "name" : "I PUT to /attribute/ondivp:", "keyword" : "When ", "line" : 4, "doc_string" : { "value" : "\t{\r\n\t \"Desc\": \"इ लव बà¥à¤²à¥‚बेरी डेनिश\",\r\n\t \"Name\": \"ールドãƒã‚¤ãƒ“ー課ã®\",\r\n\t \"IsSecure\": false,\r\n\t \"StartDate\": \"12/15/2012 06:00\",\r\n\t \"EndDate\": \"01/01/2014 18:00\",\r\n\t \"IsActive\": true\r\n\t}", "line" : 5, "content_type" : "" } }, { "name" : "I expect to get an HTTP response code of 204", "keyword" : "Then ", "line" : 15 }, { "result" : { "duration" : 4081387, "status" : "passed" }, "name" : "attribute \"ondivp\" should be defined with the following properties:", "keyword" : "And ", "line" : 16, "match" : { "arguments" : [{ "val" : "ondivp", "offset" : 11 } ], "location" : "AttributeDefinitionSteps.attribute_should_be_defined_with_the_following_properties(String,DataTable)" }, "rows" : [{ "cells" : ["Description", "Name", "Short Name", "Secure", "StartDate", "EndDate", "Active"], "line" : 17 }, { "cells" : ["इ लव बà¥à¤²à¥‚बेरी डेनिश", "ールドãƒã‚¤ãƒ“ー課ã®", "ondivp", "false", "12/15/2012 06:00", "01/01/2014 18:00", "true"], "line" : 18 } ] } ], "type" : "scenario" }, { "id" : "defining-valid-attributes;defining-a-new-attribute-without-start-and-end-date-should-use-default-dates", "description" : "", "name" : "Defining a new attribute without start and end date should use default dates", "keyword" : "Scenario", "line" : 20, "steps" : [{ "name" : "I PUT to /attribute/ondivp:", "keyword" : "When ", "line" : 21, "doc_string" : { "value" : "\t{\r\n\t \"Desc\": \"I love blueberry danish\",\r\n\t \"Name\": \"old navy div pref\",\r\n\t \"IsSecure\": false,\r\n\t \"IsActive\": true\r\n\t}", "line" : 22, "content_type" : "" } }, { "name" : "I expect to get an HTTP response code of 204", "keyword" : "Then ", "line" : 30 }, { "result" : { "duration" : 3864632, "status" : "passed" }, "name" : "attribute \"ondivp\" should be defined with the following properties:", "keyword" : "And ", "line" : 31, "match" : { "arguments" : [{ "val" : "ondivp", "offset" : 11 } ], "location" : "AttributeDefinitionSteps.attribute_should_be_defined_with_the_following_properties(String,DataTable)" }, "rows" : [{ "cells" : ["Description", "Name", "Short name", "Secure", "StartDate", "EndDate", "Active"], "line" : 32 }, { "cells" : ["I love blueberry danish", "old navy div pref", "ondivp", "false", "Today", "01/01/2200 00:00", "true"], "line" : 33 } ] } ], "type" : "scenario" }, { "id" : "defining-valid-attributes;putting-into-an-existing-attribute-should-override-all-fields", "description" : "", "name" : "Putting into an existing attribute should override all fields", "keyword" : "Scenario", "line" : 36, "steps" : [{ "name" : "the attribute \"ondivp\" has been defined as", "keyword" : "Given ", "line" : 37, "rows" : [{ "cells" : ["Description", "Name", "Short name", "Secure", "StartDate", "EndDate", "Active"], "line" : 38 }, { "cells" : ["I love blueberry danish", "old navy div pref", "ondivp", "true", "Today", "01/01/2200 00:00", "false"], "line" : 39 } ] }, { "name" : "I PUT to /attribute/ondivp:", "keyword" : "When ", "line" : 40, "doc_string" : { "value" : "\t{\r\n\t \"Desc\": \"I hate blueberry danish\",\r\n\t \"Name\": \"sad old navy div pref\",\r\n\t \"StartDate\": \"11/03/2014 06:30\",\r\n\t \"EndDate\": \"11/06/2015 06:30\",\r\n\t \"IsSecure\": false,\r\n\t \"IsActive\": true\r\n\t}", "line" : 41, "content_type" : "" } }, { "name" : "I expect to get an HTTP response code of 204", "keyword" : "Then ", "line" : 51 }, { "result" : { "duration" : 4216037, "status" : "passed" }, "name" : "attribute \"ondivp\" should be defined with the following properties:", "keyword" : "And ", "line" : 52, "match" : { "arguments" : [{ "val" : "ondivp", "offset" : 11 } ], "location" : "AttributeDefinitionSteps.attribute_should_be_defined_with_the_following_properties(String,DataTable)" }, "rows" : [{ "cells" : ["Description", "Name", "Short name", "Secure", "StartDate", "EndDate", "Active"], "line" : 53 }, { "cells" : ["I hate blueberry danish", "sad old navy div pref", "ondivp", "false", "11/03/2014 06:30", "11/06/2015 06:30", "true"], "line" : 54 } ] } ], "type" : "scenario" } ], "uri" : "features\defining_valid_attributes.feature" }, { "id" : "retrieving-attribute-values", "description" : "", "name" : "Retrieving attribute values", "keyword" : "Feature", "line" : 1, "elements" : [{ "id" : "retrieving-attribute-values;retrieving-visitor-attribute-values-for-multiple-ids", "description" : "", "name" : "Retrieving visitor attribute values for multiple IDs", "keyword" : "Scenario", "line" : 3, "steps" : [{ "name" : "visitor with Id unknownShopperId_1234 has attributes:", "keyword" : "Given ", "line" : 4, "rows" : [{ "cells" : ["Name", "Value", "StartDate", "EndDate"], "line" : 5 }, { "cells" : ["ondivp", "C", "Yesterday", "Tomorrow"], "line" : 6 }, { "cells" : ["onjpdivp", "D", "Yesterday", "Tomorrow"], "line" : 7 } ] }, { "name" : "visitor with Id cust_3456 has attributes:", "keyword" : "And ", "line" : 8, "rows" : [{ "cells" : ["Name", "Value", "StartDate", "EndDate"], "line" : 9 }, { "cells" : ["onjpdivp", "F", "Yesterday", "Tomorrow"], "line" : 10 } ] }, { "name" : "I request GET /visitor/unknownShopperId_1234,cust_3456", "keyword" : "When ", "line" : 11 }, { "result" : { "duration" : 5787916, "status" : "passed" }, "name" : "I expect the following visitor attribute response:", "keyword" : "Then ", "line" : 12, "doc_string" : { "value" : " [{\n \"Id\": \"unknownShopperId_1234\",\n \"Attributes\": [{\n \"Name\": \"ondivp\",\n \"Value\": \"C\",\n \"StartDate\": \"Yesterday\",\n \"EndDate\": \"Tomorrow\"\n }, {\n \"Name\": \"onjpdivp\",\n \"Value\": \"D\",\n \"StartDate\": \"Yesterday\",\n \"EndDate\": \"Tomorrow\"\n }]\n }, {\n \"Id\": \"cust_3456\",\n \"Attributes\": [{\n \"Name\": \"onjpdivp\",\n \"Value\": \"F\",\n \"StartDate\": \"Yesterday\",\n \"EndDate\": \"Tomorrow\"\n }]\n }] ", "line" : 13, "content_type" : "" }, "match" : { "location" : "AttributeValueSteps.I_expect_the_following_json_response(String)" } } ], "type" : "scenario" }, { "id" : "retrieving-attribute-values;retrieving-visitor-attribute-values-for-specified-attribute-short-names", "description" : "", "name" : "Retrieving visitor attribute values for specified attribute short names", "keyword" : "Scenario", "line" : 38, "steps" : [{ "name" : "visitor with Id unknownShopperId_1234 has attributes:", "keyword" : "Given ", "line" : 39, "rows" : [{ "cells" : ["Name", "Value", "StartDate", "EndDate"], "line" : 40 }, { "cells" : ["ondivp", "C", "Yesterday", "Tomorrow"], "line" : 41 }, { "cells" : ["onjpdivp", "D", "Yesterday", "Tomorrow"], "line" : 42 }, { "cells" : ["brdivp", "E", "Yesterday", "Tomorrow"], "line" : 43 } ] }, { "name" : "I request GET /visitor/unknownShopperId_1234?attr\u003dondivp,brdivp,brjpdivp", "keyword" : "When ", "line" : 44 }, { "result" : { "duration" : 1759077, "status" : "passed" }, "name" : "I expect the following visitor attribute response:", "keyword" : "Then ", "line" : 45, "doc_string" : { "value" : "[{\n\"Id\": \"unknownShopperId_1234\",\n\"Attributes\": [{\n \"Name\": \"ondivp\",\n \"Value\": \"C\",\n \"StartDate\": \"Yesterday\",\n \"EndDate\": \"Tomorrow\"\n}, {\n \"Name\": \"brdivp\",\n \"Value\": \"E\",\n \"StartDate\": \"Yesterday\",\n \"EndDate\": \"Tomorrow\"\n}]\n}] ", "line" : 46, "content_type" : "" }, "match" : { "location" : "AttributeValueSteps.I_expect_the_following_json_response(String)" } } ], "type" : "scenario" }, { "id" : "retrieving-attribute-values;retrieving-active-and-unexpired-visitor-attribute-values-with-preview-date", "description" : "", "name" : "Retrieving active and unexpired visitor attribute values with preview date", "keyword" : "Scenario", "line" : 63, "steps" : [{ "name" : "visitor with Id unknownShopperId_1234 has attributes:", "keyword" : "Given ", "line" : 64, "rows" : [{ "cells" : ["Name", "Value", "Active", "StartDate", "EndDate"], "line" : 65 }, { "cells" : ["still", "C", "true", "Yesterday", "Yesterday"], "line" : 66 }, { "cells" : ["a-", "C", "true", "Yesterday", "Today"], "line" : 67 }, { "cells" : ["live", "C", "false", "Yesterday", "Tomorrow"], "line" : 68 }, { "cells" : ["extinct", "E", "true", "Today", "Today"], "line" : 69 }, { "cells" : ["dormant", "E", "true", "Today", "Tomorrow"], "line" : 70 }, { "cells" : ["hidden", "E", "true", "Tomorrow", "Tomorrow"], "line" : 71 } ] }, { "name" : "I request GET /visitor/unknownShopperId_1234?previewDate\u003dYesterday", "keyword" : "When ", "line" : 72 }, { "result" : { "duration" : 1484849, "status" : "passed" }, "name" : "I expect the following visitor attribute response:", "keyword" : "Then ", "line" : 73, "doc_string" : { "value" : " [{\n\t \"Id\": \"unknownShopperId_1234\",\n\t \"Attributes\": [{\n\t \"Name\": \"still\",\n\t \"Value\": \"C\",\n\t \"StartDate\": \"Yesterday\",\n\t \"EndDate\": \"Yesterday\"\n\t }, {\n\t \"Name\": \"a-\",\n\t \"Value\": \"C\",\n\t \"StartDate\": \"Yesterday\",\n\t \"EndDate\": \"Today\"\n\t }]\n\t}]", "line" : 74, "content_type" : "" }, "match" : { "location" : "AttributeValueSteps.I_expect_the_following_json_response(String)" } } ], "type" : "scenario" }, { "id" : "retrieving-attribute-values;retrieving-active-and-unexpired-visitor-attribute-values-without-specifying-preview-date", "description" : "", "name" : "Retrieving active and unexpired visitor attribute values without specifying preview date", "keyword" : "Scenario", "line" : 91, "steps" : [{ "name" : "visitor with Id unknownShopperId_1234 has attributes:", "keyword" : "Given ", "line" : 92, "rows" : [{ "cells" : ["Name", "Value", "Active", "StartDate", "EndDate"], "line" : 93 }, { "cells" : ["still", "C", "true", "Yesterday", "Today"], "line" : 94 }, { "cells" : ["a-", "C", "true", "Today", "Tomorrow"], "line" : 95 }, { "cells" : ["live", "C", "true", "Today", "Today"], "line" : 96 }, { "cells" : ["extinct", "E", "true", "Yes — Reply to this email directly or view it on GitHub.

kingsleyh commented 11 years ago

Step missing result is because of cucumber-jvm json report bug. It has been fixed in trunk but not released yet