ПРЕДУПРЕЖДЕНИЕ: игнорирование неподдерживаемых правил сопоставления при проверке пакта с использованием pact- python - PullRequest
0 голосов
/ 14 июля 2020

Я новичок в Pact, и я пытаюсь проверить договор на стороне провайдера, используя pact- python, но некоторые правила сопоставления игнорируются.

ПРЕДУПРЕЖДЕНИЕ: игнорирование неподдерживаемых правил сопоставления {"$. num_issues "=> {" matchers "=> [{" match "=>" integer "}]," comb "=>" AND "}," $ .error "=> {" matchers "=> [{" match "=>" тип "}]," комбинировать "=>" И "}," $ .response [0] .issue_id "=> {" matchers "=> [{" match "=>" type "}], "объединить" => "И"}, "$ .response [0] .msg" => {"совпадения" => [{"совпадение" => "тип"}], "объединить" => "И"} , "$ .response [0] .similar_fix_found" => {"matchers" => [{"match" => "type"}], "comb" => "AND"}, "$ .response [1]. issue_id "=> {" matchers "=> [{" match "=>" type "}]," comb "=>" AND "}," $ .response [1] .msg "=> {" matchers "= > [{"match" => "type"}], "comb" => "AND"}, "$ .response [1] .similar_fix_found" => {"matchers" => [{"match" => " type "}]," comb "=>" AND "}} для пути ['body']

Потребитель - это API на основе Java, а Поставщик - API на основе Python.

                    "body": {
                        "$.num_issues": {
                            "matchers": [
                                {
                                    "match": "integer"
                                }
                            ],
                            "combine": "AND"
                        },
                        "$.error": {
                            "matchers": [
                                {
                                    "match": "type"
                                }
                            ],
                            "combine": "AND"
                        },
                        "$.response[0].issue_id": {
                            "matchers": [
                                {
                                    "match": "type"
                                }
                            ],
                            "combine": "AND"
                        },
                        "$.response[0].msg": {
                            "matchers": [
                                {
                                    "match": "type"
                                }
                            ],
                            "combine": "AND"
                        },
                        "$.response[0].similar_fix_found": {
                            "matchers": [
                                {
                                    "match": "type"
                                }
                            ],
                            "combine": "AND"
                        },
                        "$.response[1].issue_id": {
                            "matchers": [
                                {
                                    "match": "type"
                                }
                            ],
                            "combine": "AND"
                        },
                        "$.response[1].msg": {
                            "matchers": [
                                {
                                    "match": "type"
                                }
                            ],
                            "combine": "AND"
                        },
                        "$.response[1].similar_fix_found": {
                            "matchers": [
                                {
                                    "match": "type"
                                }
                            ],
                            "combine": "AND"
                        }
                    }
                }
            }
        }
    ],
    "metadata": {
        "pact-specification": {
            "version": "3.0.0"
        }
    }

Изменение версии спецификации пакта на 2.0.0 вручную также не сработало как r equired.

Кто-нибудь может что-то подсказать ..?

1 Ответ

0 голосов
/ 15 июля 2020

Вам нужно явно указать версию спецификации в Java потребительском тесте.

Например, в тесте JUnit вы можете сделать это так:

@PactTestFor(providerName = "pactflow-example-provider-java-kafka", providerType = ProviderType.ASYNCH, pactVersion = PactSpecVersion.V2)

Сопоставители и структура файла пакета отличается в зависимости от версии, поэтому простое изменение версии в пакте после не поможет.

...