Repository: stoplightio/spectral
Pull request #1718 (2021-07-06 22:32:43)

feat(core): use double quotes in errors reported by Ajv
Related: #1619 

**Checklist**

- [x] Tests added / updated
- [x] Docs added / updated

**Does this PR introduce a breaking change?**

- [ ] Yes
- [x] No





Patch:
diff --git a/packages/core/package.json b/packages/core/package.json
index a4041e63..8064a992 100644
--- a/packages/core/package.json
+++ b/packages/core/package.json
@@ -22,7 +22,7 @@
     "postbuild": "node -r esm ./scripts/inline-version.mjs"
   },
   "dependencies": {
-    "@stoplight/better-ajv-errors": "0.1.1",
+    "@stoplight/better-ajv-errors": "0.2.0",
     "@stoplight/json": "3.15.0",
     "@stoplight/lifecycle": "2.3.2",
     "@stoplight/path": "1.3.2",
diff --git a/packages/core/src/runner/utils/message.ts b/packages/core/src/runner/utils/message.ts
index e38ba36b..186dbe84 100644
--- a/packages/core/src/runner/utils/message.ts
+++ b/packages/core/src/runner/utils/message.ts
@@ -20,7 +20,7 @@ MessageReplacer.addFunction('print', function (type) {
   switch (type) {
     case 'property':
       if (property !== void 0 && property !== '') {
-        return `\`${property}\` property `;
+        return `"${property}" property `;
       }
 
       return `The document `;
diff --git a/packages/functions/package.json b/packages/functions/package.json
index 680e2a2a..9376ed85 100644
--- a/packages/functions/package.json
+++ b/packages/functions/package.json
@@ -19,7 +19,7 @@
     "node": ">=12"
   },
   "dependencies": {
-    "@stoplight/better-ajv-errors": "^0.1.1",
+    "@stoplight/better-ajv-errors": "0.2.0",
     "@stoplight/json": "3.15.0",
     "@stoplight/spectral-core": "^0.0.0",
     "@stoplight/spectral-formats": "^0.0.0",
diff --git a/packages/rulesets/package.json b/packages/rulesets/package.json
index 78f09f2a..ce47f099 100644
--- a/packages/rulesets/package.json
+++ b/packages/rulesets/package.json
@@ -18,7 +18,7 @@
     "url": "https://github.com/stoplightio/spectral.git"
   },
   "dependencies": {
-    "@stoplight/better-ajv-errors": "0.1.1",
+    "@stoplight/better-ajv-errors": "0.2.0",
     "@stoplight/json": "3.15.0",
     "@stoplight/spectral-core": "^0.0.0",
     "@stoplight/spectral-formats": "^0.0.0",
diff --git a/yarn.lock b/yarn.lock
index 07726648..1b6672bc 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1803,10 +1803,10 @@
   dependencies:
     "@sinonjs/commons" "^1.7.0"
 
-"@stoplight/better-ajv-errors@0.1.1", "@stoplight/better-ajv-errors@^0.1.1":
-  version "0.1.1"
-  resolved "https://registry.yarnpkg.com/@stoplight/better-ajv-errors/-/better-ajv-errors-0.1.1.tgz#fa7c01aceed122af7c0ab984c6a9cdbef202edb7"
-  integrity sha512-uTfccuOd2Fl7N3I2pEBpWNcHGx1lD3J5BDbqE3YAonXUGa1uUNZdonz3Ow/EqvnZncda++ChAZX61Z7Frd9kYQ==
+"@stoplight/better-ajv-errors@0.2.0":
+  version "0.2.0"
+  resolved "https://registry.yarnpkg.com/@stoplight/better-ajv-errors/-/better-ajv-errors-0.2.0.tgz#86aa8072dece24e2aa7e132f889390c18ca1ca6d"
+  integrity sha512-3vBbXBDplfeOGS2rT4PyOwJ1K0A7/NqlVXI6sJ/XchQlrMXFMKtj4qExBLxr4M9ZiiESu48uhbdS3Nx8A0S+ZA==
   dependencies:
     jsonpointer "^4.0.1"
     leven "^3.1.0"


Test patch:
diff --git a/packages/cli/src/services/__tests__/linter.test.ts b/packages/cli/src/services/__tests__/linter.test.ts
index e3e63230..1f415202 100644
--- a/packages/cli/src/services/__tests__/linter.test.ts
+++ b/packages/cli/src/services/__tests__/linter.test.ts
@@ -57,7 +57,7 @@ describe('Linter service', () => {
     expect(results).toEqual([
       {
         code: 'defined-name',
-        message: '`name` property must be truthy',
+        message: '"name" property must be truthy',
         path: ['0', 'name'],
         range: {
           end: {
@@ -74,7 +74,7 @@ describe('Linter service', () => {
       },
       {
         code: 'defined-name',
-        message: '`name` property must be truthy',
+        message: '"name" property must be truthy',
         path: ['1', 'name'],
         range: {
           end: {
@@ -306,7 +306,7 @@ describe('Linter service', () => {
       return expect(run(`lint -r references/ruleset.js references/no-nested.json`)).resolves.toEqual([
         expect.objectContaining({
           code: 'valid-schema',
-          message: '`info` property must have required property `version`',
+          message: '"info" property must have required property "version"',
           path: ['definitions', 'info'],
           range: {
             end: {
@@ -322,7 +322,7 @@ describe('Linter service', () => {
         }),
         expect.objectContaining({
           code: 'valid-schema',
-          message: '`description` property type must be string',
+          message: '"description" property type must be string',
           path: ['definitions', 'info', 'description'],
           range: {
             end: {
@@ -338,7 +338,7 @@ describe('Linter service', () => {
         }),
         expect.objectContaining({
           code: 'valid-schema',
-          message: 'Property `foo` is not expected to be here',
+          message: 'Property "foo" is not expected to be here',
           path: ['paths'],
           range: {
             end: {
@@ -359,7 +359,7 @@ describe('Linter service', () => {
       return expect(run(`lint -r references/ruleset.js references/nested.json`)).resolves.toEqual([
         expect.objectContaining({
           code: 'valid-schema',
-          message: '`info` property must have required property `version`',
+          message: '"info" property must have required property "version"',
           path: [],
           range: {
             end: {
@@ -375,7 +375,7 @@ describe('Linter service', () => {
         }),
         expect.objectContaining({
           code: 'valid-schema',
-          message: '`description` property type must be string',
+          message: '"description" property type must be string',
           path: ['description'],
           range: {
             end: {
@@ -391,7 +391,7 @@ describe('Linter service', () => {
         }),
         expect.objectContaining({
           code: 'valid-schema',
-          message: '`get` property must have required property `responses`',
+          message: '"get" property must have required property "responses"',
           path: ['paths', '/test', 'get'],
           range: {
             end: {
@@ -407,7 +407,7 @@ describe('Linter service', () => {
         }),
         expect.objectContaining({
           code: 'valid-schema',
-          message: '`response` property type must be number',
+          message: '"response" property type must be number',
           path: ['paths', '/test', 'get', 'response'],
           range: {
             end: {
diff --git a/packages/core/src/__tests__/linter.test.ts b/packages/core/src/__tests__/linter.test.ts
index 1e0d4ddc..97bc3cf8 100644
--- a/packages/core/src/__tests__/linter.test.ts
+++ b/packages/core/src/__tests__/linter.test.ts
@@ -1283,7 +1283,7 @@ responses:: !!foo
     expect(results).toEqual([
       {
         code: 'falsy-foo',
-        message: '`foo` property must be falsy',
+        message: '"foo" property must be falsy',
         path: ['0', 'foo'],
         range: expect.any(Object),
         severity: DiagnosticSeverity.Warning,
diff --git a/packages/core/src/__tests__/spectral.jest.test.ts b/packages/core/src/__tests__/spectral.jest.test.ts
index 836acac6..c7e5da5a 100644
--- a/packages/core/src/__tests__/spectral.jest.test.ts
+++ b/packages/core/src/__tests__/spectral.jest.test.ts
@@ -36,7 +36,7 @@ describe('Spectral', () => {
     expect(results).toEqual([
       {
         code: 'requires-type',
-        message: '`empty.type` property must be truthy',
+        message: '"empty.type" property must be truthy',
         path: ['empty'],
         range: {
           end: {
@@ -70,7 +70,7 @@ describe('Spectral', () => {
       },
       {
         code: 'requires-type',
-        message: '`allOf.type` property must be truthy',
+        message: '"allOf.type" property must be truthy',
         path: ['allOf'],
         range: {
           end: {
diff --git a/packages/functions/src/__tests__/defined.test.ts b/packages/functions/src/__tests__/defined.test.ts
index 1c6a4a96..18a84887 100644
--- a/packages/functions/src/__tests__/defined.test.ts
+++ b/packages/functions/src/__tests__/defined.test.ts
@@ -12,7 +12,7 @@ describe('Core Functions / Defined', () => {
   it('given undefined input, should return an error message', async () => {
     expect(await runDefined({}, null, { then: { field: 'foo' } })).toEqual([
       {
-        message: '`foo` property must be defined',
+        message: '"foo" property must be defined',
         path: [],
       },
     ]);
diff --git a/packages/functions/src/__tests__/schema.test.ts b/packages/functions/src/__tests__/schema.test.ts
index 46530372..e9795322 100644
--- a/packages/functions/src/__tests__/schema.test.ts
+++ b/packages/functions/src/__tests__/schema.test.ts
@@ -172,7 +172,7 @@ describe('Core Functions / Schema', () => {
         ),
       ).toEqual([
         {
-          message: '`bar` property type must be string',
+          message: '"bar" property type must be string',
           path: ['foo', 'bar'],
         },
       ]);
@@ -189,7 +189,7 @@ describe('Core Functions / Schema', () => {
         ),
       ).toEqual([
         {
-          message: 'Property `baz` is not expected to be here',
+          message: 'Property "baz" is not expected to be here',
           path: ['foo'],
         },
       ]);
@@ -206,7 +206,7 @@ describe('Core Functions / Schema', () => {
       const input = 'not an email';
       expect(await runSchema(input, { schema })).toEqual([
         {
-          message: 'String must match format `email`',
+          message: 'String must match format "email"',
           path: [],
         },
       ]);
@@ -243,7 +243,7 @@ describe('Core Functions / Schema', () => {
       expect(results).toEqual([
         {
           path: [],
-          message: expect.stringMatching(new RegExp(`^(Number|String|Value) must match format \`${format}\`$`)),
+          message: expect.stringMatching(new RegExp(`^(Number|String|Value) must match format "${format}"$`)),
         },
       ]);
     });
@@ -275,7 +275,7 @@ describe('Core Functions / Schema', () => {
       it('reports pretty enum errors for a string', async () => {
         expect(await runSchema('baz', { schema })).toEqual([
           {
-            message: 'String must be equal to one of the allowed values: `foo`, `bar`. Did you mean `bar`?',
+            message: 'String must be equal to one of the allowed values: "foo", "bar". Did you mean "bar"?',
             path: [],
           },
         ]);
@@ -352,7 +352,7 @@ describe('Core Functions / Schema', () => {
 
     expect(await runSchema('three', { schema })).toEqual([
       {
-        message: 'String must be equal to one of the allowed values: `foo`, `bar`',
+        message: 'String must be equal to one of the allowed values: "foo", "bar"',
         path: [],
       },
     ]);
@@ -362,7 +362,7 @@ describe('Core Functions / Schema', () => {
     const input = { foo: true };
     expect(await runSchema(input, { schema: { additionalProperties: false } })).toEqual([
       {
-        message: 'Property `foo` is not expected to be here',
+        message: 'Property "foo" is not expected to be here',
         path: [],
       },
     ]);
diff --git a/packages/rulesets/src/asyncapi/__tests__/asyncapi-headers-schema-type-object.test.ts b/packages/rulesets/src/asyncapi/__tests__/asyncapi-headers-schema-type-object.test.ts
index e3d6cc17..36e99de4 100644
--- a/packages/rulesets/src/asyncapi/__tests__/asyncapi-headers-schema-type-object.test.ts
+++ b/packages/rulesets/src/asyncapi/__tests__/asyncapi-headers-schema-type-object.test.ts
@@ -52,7 +52,7 @@ testRule('asyncapi-headers-schema-type-object', [
     errors: [
       {
         message:
-          'Headers schema type must be "object" (`type` property must be equal to one of the allowed values: `object`. Did you mean `object`?).',
+          'Headers schema type must be "object" ("type" property must be equal to one of the allowed values: "object". Did you mean "object"?).',
         path: ['components', 'messages', 'aMessage', 'headers', 'type'],
         severity: DiagnosticSeverity.Error,
       },
@@ -66,7 +66,7 @@ testRule('asyncapi-headers-schema-type-object', [
     }),
     errors: [
       {
-        message: 'Headers schema type must be "object" (`headers` property must have required property `type`).',
+        message: 'Headers schema type must be "object" ("headers" property must have required property "type").',
         path: ['components', 'messages', 'aMessage', 'headers'],
         severity: DiagnosticSeverity.Error,
       },
@@ -81,7 +81,7 @@ testRule('asyncapi-headers-schema-type-object', [
     errors: [
       {
         message:
-          'Headers schema type must be "object" (`type` property must be equal to one of the allowed values: `object`. Did you mean `object`?).',
+          'Headers schema type must be "object" ("type" property must be equal to one of the allowed values: "object". Did you mean "object"?).',
         path: ['components', 'messageTraits', 'aTrait', 'headers', 'type'],
         severity: DiagnosticSeverity.Error,
       },
@@ -95,7 +95,7 @@ testRule('asyncapi-headers-schema-type-object', [
     }),
     errors: [
       {
-        message: 'Headers schema type must be "object" (`headers` property must have required property `type`).',
+        message: 'Headers schema type must be "object" ("headers" property must have required property "type").',
         path: ['components', 'messageTraits', 'aTrait', 'headers'],
         severity: DiagnosticSeverity.Error,
       },
@@ -110,7 +110,7 @@ testRule('asyncapi-headers-schema-type-object', [
       }),
       errors: [
         {
-          message: 'Headers schema type must be "object" (`headers` property must have required property `type`).',
+          message: 'Headers schema type must be "object" ("headers" property must have required property "type").',
           path: ['channels', 'users/{userId}/signedUp', property, 'message', 'headers'],
           severity: DiagnosticSeverity.Error,
         },
@@ -125,7 +125,7 @@ testRule('asyncapi-headers-schema-type-object', [
       errors: [
         {
           message:
-            'Headers schema type must be "object" (`type` property must be equal to one of the allowed values: `object`. Did you mean `object`?).',
+            'Headers schema type must be "object" ("type" property must be equal to one of the allowed values: "object". Did you mean "object"?).',
           path: ['channels', 'users/{userId}/signedUp', property, 'message', 'headers', 'type'],
           severity: DiagnosticSeverity.Error,
         },
diff --git a/packages/rulesets/src/asyncapi/__tests__/asyncapi-payload-default.test.ts b/packages/rulesets/src/asyncapi/__tests__/asyncapi-payload-default.test.ts
index 5ddb9eb1..953ee3fa 100644
--- a/packages/rulesets/src/asyncapi/__tests__/asyncapi-payload-default.test.ts
+++ b/packages/rulesets/src/asyncapi/__tests__/asyncapi-payload-default.test.ts
@@ -58,7 +58,7 @@ testRule('asyncapi-payload-default', [
     }),
     errors: [
       {
-        message: '`default` property must have required property `value`',
+        message: '"default" property must have required property "value"',
         path: ['components', 'messages', 'aMessage', 'payload', 'default'],
         severity: DiagnosticSeverity.Error,
       },
@@ -72,7 +72,7 @@ testRule('asyncapi-payload-default', [
     }),
     errors: [
       {
-        message: '`default` property must have required property `value`',
+        message: '"default" property must have required property "value"',
         path: ['components', 'messageTraits', 'aTrait', 'payload', 'default'],
         severity: DiagnosticSeverity.Error,
       },
@@ -86,7 +86,7 @@ testRule('asyncapi-payload-default', [
     }),
     errors: [
       {
-        message: '`default` property must have required property `value`',
+        message: '"default" property must have required property "value"',
         path: ['channels', 'users/{userId}/signedUp', property, 'message', 'payload', 'default'],
         severity: DiagnosticSeverity.Error,
       },
diff --git a/packages/rulesets/src/asyncapi/__tests__/asyncapi-payload-examples.test.ts b/packages/rulesets/src/asyncapi/__tests__/asyncapi-payload-examples.test.ts
index 74c0ccf6..0aa7b229 100644
--- a/packages/rulesets/src/asyncapi/__tests__/asyncapi-payload-examples.test.ts
+++ b/packages/rulesets/src/asyncapi/__tests__/asyncapi-payload-examples.test.ts
@@ -58,7 +58,7 @@ testRule('asyncapi-payload-examples', [
     }),
     errors: [
       {
-        message: '`1` property must have required property `value`',
+        message: '"1" property must have required property "value"',
         path: ['components', 'messages', 'aMessage', 'payload', 'examples', '1'],
         severity: DiagnosticSeverity.Error,
       },
@@ -72,7 +72,7 @@ testRule('asyncapi-payload-examples', [
     }),
     errors: [
       {
-        message: '`1` property must have required property `value`',
+        message: '"1" property must have required property "value"',
         path: ['components', 'messageTraits', 'aTrait', 'payload', 'examples', '1'],
         severity: DiagnosticSeverity.Error,
       },
@@ -86,7 +86,7 @@ testRule('asyncapi-payload-examples', [
     }),
     errors: [
       {
-        message: '`1` property must have required property `value`',
+        message: '"1" property must have required property "value"',
         path: ['channels', 'users/{userId}/signedUp', property, 'message', 'payload', 'examples', '1'],
         severity: DiagnosticSeverity.Error,
       },
diff --git a/packages/rulesets/src/asyncapi/__tests__/asyncapi-payload.test.ts b/packages/rulesets/src/asyncapi/__tests__/asyncapi-payload.test.ts
index ee93bc1f..534fcb87 100644
--- a/packages/rulesets/src/asyncapi/__tests__/asyncapi-payload.test.ts
+++ b/packages/rulesets/src/asyncapi/__tests__/asyncapi-payload.test.ts
@@ -57,7 +57,7 @@ testRule('asyncapi-payload', [
     }),
     errors: [
       {
-        message: '`deprecated` property type must be boolean',
+        message: '"deprecated" property type must be boolean',
         path: ['components', 'messages', 'aMessage', 'payload', 'deprecated'],
         severity: DiagnosticSeverity.Error,
       },
@@ -71,7 +71,7 @@ testRule('asyncapi-payload', [
     }),
     errors: [
       {
-        message: '`deprecated` property type must be boolean',
+        message: '"deprecated" property type must be boolean',
         path: ['components', 'messageTraits', 'aTrait', 'payload', 'deprecated'],
         severity: DiagnosticSeverity.Error,
       },
@@ -85,7 +85,7 @@ testRule('asyncapi-payload', [
     }),
     errors: [
       {
-        message: '`deprecated` property type must be boolean',
+        message: '"deprecated" property type must be boolean',
         path: ['channels', 'users/{userId}/signedUp', property, 'message', 'payload', 'deprecated'],
         severity: DiagnosticSeverity.Error,
       },
diff --git a/packages/rulesets/src/asyncapi/__tests__/asyncapi-schema-default.test.ts b/packages/rulesets/src/asyncapi/__tests__/asyncapi-schema-default.test.ts
index 4fe74862..ae4d59f7 100644
--- a/packages/rulesets/src/asyncapi/__tests__/asyncapi-schema-default.test.ts
+++ b/packages/rulesets/src/asyncapi/__tests__/asyncapi-schema-default.test.ts
@@ -45,7 +45,7 @@ testRule('asyncapi-schema-default', [
     }),
     errors: [
       {
-        message: '`default` property type must be string',
+        message: '"default" property type must be string',
         path: ['components', 'schemas', 'aSchema', 'default'],
         severity: DiagnosticSeverity.Error,
       },
@@ -59,7 +59,7 @@ testRule('asyncapi-schema-default', [
     }),
     errors: [
       {
-        message: '`default` property type must be string',
+        message: '"default" property type must be string',
         path: ['components', 'parameters', 'orphanParameter', 'schema', 'default'],
         severity: DiagnosticSeverity.Error,
       },
@@ -73,7 +73,7 @@ testRule('asyncapi-schema-default', [
     }),
     errors: [
       {
-        message: '`default` property type must be string',
+        message: '"default" property type must be string',
         path: ['channels', 'users/{userId}/signedUp', 'parameters', 'userId', 'schema', 'default'],
         severity: DiagnosticSeverity.Error,
       },
diff --git a/packages/rulesets/src/asyncapi/__tests__/asyncapi-schema-examples.test.ts b/packages/rulesets/src/asyncapi/__tests__/asyncapi-schema-examples.test.ts
index 7e2a2766..6b47db67 100644
--- a/packages/rulesets/src/asyncapi/__tests__/asyncapi-schema-examples.test.ts
+++ b/packages/rulesets/src/asyncapi/__tests__/asyncapi-schema-examples.test.ts
@@ -45,12 +45,12 @@ testRule('asyncapi-schema-examples', [
     }),
     errors: [
       {
-        message: '`0` property type must be string',
+        message: '"0" property type must be string',
         path: ['components', 'schemas', 'aSchema', 'examples', '0'],
         severity: DiagnosticSeverity.Error,
       },
       {
-        message: '`2` property type must be string',
+        message: '"2" property type must be string',
         path: ['components', 'schemas', 'aSchema', 'examples', '2'],
         severity: DiagnosticSeverity.Error,
       },
@@ -64,12 +64,12 @@ testRule('asyncapi-schema-examples', [
     }),
     errors: [
       {
-        message: '`0` property type must be string',
+        message: '"0" property type must be string',
         path: ['components', 'parameters', 'orphanParameter', 'schema', 'examples', '0'],
         severity: DiagnosticSeverity.Error,
       },
       {
-        message: '`2` property type must be string',
+        message: '"2" property type must be string',
         path: ['components', 'parameters', 'orphanParameter', 'schema', 'examples', '2'],
         severity: DiagnosticSeverity.Error,
       },
@@ -83,12 +83,12 @@ testRule('asyncapi-schema-examples', [
     }),
     errors: [
       {
-        message: '`0` property type must be string',
+        message: '"0" property type must be string',
         path: ['channels', 'users/{userId}/signedUp', 'parameters', 'userId', 'schema', 'examples', '0'],
         severity: DiagnosticSeverity.Error,
       },
       {
-        message: '`2` property type must be string',
+        message: '"2" property type must be string',
         path: ['channels', 'users/{userId}/signedUp', 'parameters', 'userId', 'schema', 'examples', '2'],
         severity: DiagnosticSeverity.Error,
       },
diff --git a/packages/rulesets/src/asyncapi/__tests__/asyncapi-schema.test.ts b/packages/rulesets/src/asyncapi/__tests__/asyncapi-schema.test.ts
index d96b666f..02b194ed 100644
--- a/packages/rulesets/src/asyncapi/__tests__/asyncapi-schema.test.ts
+++ b/packages/rulesets/src/asyncapi/__tests__/asyncapi-schema.test.ts
@@ -25,7 +25,7 @@ testRule('asyncapi-schema', [
       },
     },
     errors: [
-      { message: 'Object must have required property `channels`', path: [], severity: DiagnosticSeverity.Error },
+      { message: 'Object must have required property "channels"', path: [], severity: DiagnosticSeverity.Error },
     ],
   },
 ]);
diff --git a/packages/rulesets/src/asyncapi/functions/__tests__/asyncApi2PayloadValidation.test.ts b/packages/rulesets/src/asyncapi/functions/__tests__/asyncApi2PayloadValidation.test.ts
index 7a39279d..9fb7fb05 100644
--- a/packages/rulesets/src/asyncapi/functions/__tests__/asyncApi2PayloadValidation.test.ts
+++ b/packages/rulesets/src/asyncapi/functions/__tests__/asyncApi2PayloadValidation.test.ts
@@ -15,7 +15,7 @@ describe('asyncApi2PayloadValidation', () => {
 
     expect(results).toEqual([
       {
-        message: '`deprecated` property type must be boolean',
+        message: '"deprecated" property type must be boolean',
         path: ['components', 'messages', 'aMessage', 'deprecated'],
       },
     ]);
diff --git a/packages/rulesets/src/asyncapi/functions/__tests__/asyncApi2SchemaValidation.test.ts b/packages/rulesets/src/asyncapi/functions/__tests__/asyncApi2SchemaValidation.test.ts
index 85eb9c1b..ca1cae69 100644
--- a/packages/rulesets/src/asyncapi/functions/__tests__/asyncApi2SchemaValidation.test.ts
+++ b/packages/rulesets/src/asyncapi/functions/__tests__/asyncApi2SchemaValidation.test.ts
@@ -15,11 +15,11 @@ describe('asyncApi2SchemaValidation', () => {
 
     expect(results).toEqual([
       {
-        message: '`0` property type must be string',
+        message: '"0" property type must be string',
         path: ['examples', 0],
       },
       {
-        message: '`2` property type must be string',
+        message: '"2" property type must be string',
         path: ['examples', 2],
       },
     ]);
@@ -35,7 +35,7 @@ describe('asyncApi2SchemaValidation', () => {
 
     expect(results).toEqual([
       {
-        message: '`default` property type must be string',
+        message: '"default" property type must be string',
         path: ['default'],
       },
     ]);
diff --git a/packages/rulesets/src/oas/__tests__/duplicated-entry-in-enum.test.ts b/packages/rulesets/src/oas/__tests__/duplicated-entry-in-enum.test.ts
index 40ad539c..cf367111 100644
--- a/packages/rulesets/src/oas/__tests__/duplicated-entry-in-enum.test.ts
+++ b/packages/rulesets/src/oas/__tests__/duplicated-entry-in-enum.test.ts
@@ -62,7 +62,7 @@ testRule('duplicated-entry-in-enum', [
 
     errors: [
       {
-        message: `A duplicated entry in the enum was found. Error: \`enum\` property must not have duplicate items (items ## 1 and 5 are identical)`,
+        message: `A duplicated entry in the enum was found. Error: "enum" property must not have duplicate items (items ## 1 and 5 are identical)`,
         path: ['definitions', 'Test', 'enum'],
         severity: DiagnosticSeverity.Warning,
       },
@@ -108,7 +108,7 @@ testRule('duplicated-entry-in-enum', [
     },
     errors: [
       {
-        message: `A duplicated entry in the enum was found. Error: \`enum\` property must not have duplicate items (items ## 1 and 5 are identical)`,
+        message: `A duplicated entry in the enum was found. Error: "enum" property must not have duplicate items (items ## 1 and 5 are identical)`,
         path: ['components', 'schemas', 'Test', 'enum'],
         severity: DiagnosticSeverity.Warning,
       },
diff --git a/packages/rulesets/src/oas/__tests__/oas2-schema.test.ts b/packages/rulesets/src/oas/__tests__/oas2-schema.test.ts
index 6167e280..97b28290 100644
--- a/packages/rulesets/src/oas/__tests__/oas2-schema.test.ts
+++ b/packages/rulesets/src/oas/__tests__/oas2-schema.test.ts
@@ -19,7 +19,7 @@ testRule('oas2-schema', [
     },
     errors: [
       {
-        message: `\`get\` property must have required property \`responses\`.`,
+        message: `"get" property must have required property "responses".`,
         path: ['paths', '/test', 'get'],
         severity: DiagnosticSeverity.Error,
       },
diff --git a/packages/rulesets/src/oas/__tests__/oas2-valid-media-example.test.ts b/packages/rulesets/src/oas/__tests__/oas2-valid-media-example.test.ts
index 9a9612fb..0f2954f8 100644
--- a/packages/rulesets/src/oas/__tests__/oas2-valid-media-example.test.ts
+++ b/packages/rulesets/src/oas/__tests__/oas2-valid-media-example.test.ts
@@ -39,7 +39,7 @@ testRule('oas2-valid-media-example', [
     },
     errors: [
       {
-        message: '`application/yaml` property type must be string',
+        message: '"application/yaml" property type must be string',
         path: ['responses', '200', 'examples', 'application/yaml'],
         severity: DiagnosticSeverity.Error,
       },
diff --git a/packages/rulesets/src/oas/__tests__/oas2-valid-schema-example.test.ts b/packages/rulesets/src/oas/__tests__/oas2-valid-schema-example.test.ts
index 5f9ea784..faca99b9 100644
--- a/packages/rulesets/src/oas/__tests__/oas2-valid-schema-example.test.ts
+++ b/packages/rulesets/src/oas/__tests__/oas2-valid-schema-example.test.ts
@@ -36,7 +36,7 @@ testRule('oas2-valid-schema-example', [
         },
         errors: [
           {
-            message: `\`${field}\` property type must be string`,
+            message: `"${field}" property type must be string`,
             severity: DiagnosticSeverity.Error,
             path: [parentField, '0', 'xoxo', field],
           },
@@ -58,7 +58,7 @@ testRule('oas2-valid-schema-example', [
         },
         errors: [
           {
-            message: `\`${field}\` property must be equal to one of the allowed values: \`a\`, \`b\``,
+            message: `"${field}" property must be equal to one of the allowed values: "a", "b"`,
             path: [parentField, '0', 'xoxo', field],
             severity: DiagnosticSeverity.Error,
           },
@@ -118,7 +118,7 @@ testRule('oas2-valid-schema-example', [
       },
       errors: [
         {
-          message: '`x-example` property type must be string',
+          message: '"x-example" property type must be string',
           path: [parentField, '0', 'schema', 'x-example'],
           severity: DiagnosticSeverity.Error,
         },
@@ -141,7 +141,7 @@ testRule('oas2-valid-schema-example', [
       },
       errors: [
         {
-          message: '`default` property type must be string',
+          message: '"default" property type must be string',
           path: [parentField, '0', 'schema', 'default'],
           severity: DiagnosticSeverity.Error,
         },
@@ -213,7 +213,7 @@ testRule('oas2-valid-schema-example', [
       },
       errors: [
         {
-          message: '`example` property must have required property `url`',
+          message: '"example" property must have required property "url"',
           severity: DiagnosticSeverity.Error,
           path: [parentField, '0', 'schema', 'example'],
         },
@@ -316,7 +316,7 @@ testRule('oas2-valid-schema-example', [
 
     errors: [
       {
-        message: '`self` property type must be array',
+        message: '"self" property type must be array',
         path: ['definitions', 'halRoot', 'example', '_links', 'self'],
         severity: DiagnosticSeverity.Error,
       },
@@ -365,7 +365,7 @@ testRule('oas2-valid-schema-example', [
     },
     errors: [
       {
-        message: '`example` property type must be string',
+        message: '"example" property type must be string',
         path: ['definitions', '0', 'xoxo', 'properties', 'a', 'properties', 'b', 'properties', 'c', 'example'],
         severity: DiagnosticSeverity.Error,
       },
diff --git a/packages/rulesets/src/oas/__tests__/oas3-schema.test.ts b/packages/rulesets/src/oas/__tests__/oas3-schema.test.ts
index 2d4ef7c2..181ff434 100644
--- a/packages/rulesets/src/oas/__tests__/oas3-schema.test.ts
+++ b/packages/rulesets/src/oas/__tests__/oas3-schema.test.ts
@@ -7,19 +7,19 @@ testRule('oas3-schema', [
     document: require('./__fixtures__/petstore.invalid-schema.oas3.json'),
     errors: [
       {
-        message: '`email` property must match format `email`.',
+        message: '"email" property must match format "email".',
         path: ['info', 'contact', 'email'],
       },
       {
-        message: '`header-1` property must have required property `schema`.',
+        message: '"header-1" property must have required property "schema".',
         path: ['paths', '/pets', 'get', 'responses', '200', 'headers', 'header-1'],
       },
       {
-        message: 'Property `type` is not expected to be here.',
+        message: 'Property "type" is not expected to be here.',
         path: ['paths', '/pets', 'get', 'responses', '200', 'headers', 'header-1', 'type'],
       },
       {
-        message: 'Property `op` is not expected to be here.',
+        message: 'Property "op" is not expected to be here.',
         path: ['paths', '/pets', 'get', 'responses', '200', 'headers', 'header-1', 'op'],
       },
     ],
@@ -86,17 +86,17 @@ testRule('oas3-schema', [
     },
     errors: [
       {
-        message: 'Property `42` is not expected to be here.',
+        message: 'Property "42" is not expected to be here.',
         path: ['paths', '/pets', 'post', 'responses', '42'],
         severity: DiagnosticSeverity.Error,
       },
       {
-        message: 'Property `9999` is not expected to be here.',
+        message: 'Property "9999" is not expected to be here.',
         path: ['paths', '/pets', 'post', 'responses', '9999'],
         severity: DiagnosticSeverity.Error,
       },
       {
-        message: 'Property `5xx` is not expected to be here.',
+        message: 'Property "5xx" is not expected to be here.',
         path: ['paths', '/pets', 'post', 'responses', '5xx'],
         severity: DiagnosticSeverity.Error,
       },
diff --git a/packages/rulesets/src/oas/__tests__/oas3-valid-media-example.test.ts b/packages/rulesets/src/oas/__tests__/oas3-valid-media-example.test.ts
index e6341c8d..4308e983 100644
--- a/packages/rulesets/src/oas/__tests__/oas3-valid-media-example.test.ts
+++ b/packages/rulesets/src/oas/__tests__/oas3-valid-media-example.test.ts
@@ -34,7 +34,7 @@ testRule('oas3-valid-media-example', [
       },
       errors: [
         {
-          message: '`example` property type must be string',
+          message: '"example" property type must be string',
           path: [field, 'xoxo', 'example'],
           severity: DiagnosticSeverity.Error,
         },
@@ -57,7 +57,7 @@ testRule('oas3-valid-media-example', [
 
       errors: [
         {
-          message: '`example` property must be equal to one of the allowed values: `a`, `b`',
+          message: '"example" property must be equal to one of the allowed values: "a", "b"',
           path: [field, 'xoxo', 'example'],
           severity: DiagnosticSeverity.Error,
         },
@@ -171,7 +171,7 @@ testRule('oas3-valid-media-example', [
       },
       errors: [
         {
-          message: '`example` property must have required property `url`',
+          message: '"example" property must have required property "url"',
           path: [field, 'xoxo', 'example'],
           severity: DiagnosticSeverity.Error,
         },
@@ -235,7 +235,7 @@ testRule('oas3-valid-media-example', [
       errors: [
         {
           code: 'oas3-valid-media-example',
-          message: '`value` property type must be string',
+          message: '"value" property type must be string',
           path: [field, 'xoxo', 'examples', 'test1', 'value'],
         },
       ],
@@ -275,7 +275,7 @@ testRule('oas3-valid-media-example', [
       {
         severity: DiagnosticSeverity.Error,
         code: 'oas3-valid-media-example',
-        message: '`example` property type must be string',
+        message: '"example" property type must be string',
       },
     ],
   },
@@ -353,7 +353,7 @@ testRule('oas3-valid-media-example', [
     errors: [
       {
         code: 'oas3-valid-media-example',
-        message: '`example` property must have required property `abc`',
+        message: '"example" property must have required property "abc"',
         severity: DiagnosticSeverity.Error,
       },
     ],
@@ -392,7 +392,7 @@ testRule('oas3-valid-media-example', [
     errors: [
       {
         code: 'oas3-valid-media-example',
-        message: '`example` property must have required property `url`',
+        message: '"example" property must have required property "url"',
         severity: DiagnosticSeverity.Error,
       },
     ],
diff --git a/packages/rulesets/src/oas/__tests__/oas3-valid-schema-example.ts b/packages/rulesets/src/oas/__tests__/oas3-valid-schema-example.test.ts
similarity index 95%
rename from packages/rulesets/src/oas/__tests__/oas3-valid-schema-example.ts
rename to packages/rulesets/src/oas/__tests__/oas3-valid-schema-example.test.ts
index 9eb92ebe..fd08c7f3 100644
--- a/packages/rulesets/src/oas/__tests__/oas3-valid-schema-example.ts
+++ b/packages/rulesets/src/oas/__tests__/oas3-valid-schema-example.test.ts
@@ -50,7 +50,7 @@ testRule('oas3-valid-schema-example', [
       },
       errors: [
         {
-          message: '`example` property type must be string',
+          message: '"example" property type must be string',
           path: [field, 'schemas', 'xoxo', 'example'],
           severity: DiagnosticSeverity.Error,
         },
@@ -72,7 +72,7 @@ testRule('oas3-valid-schema-example', [
       },
       errors: [
         {
-          message: '`default` property type must be string',
+          message: '"default" property type must be string',
           severity: DiagnosticSeverity.Error,
           path: [field, 'schemas', 'xoxo', 'default'],
         },
@@ -123,7 +123,7 @@ testRule('oas3-valid-schema-example', [
       },
       errors: [
         {
-          message: '`example` property type must be string',
+          message: '"example" property type must be string',
           path: [
             field,
             'schemas',
@@ -157,7 +157,7 @@ testRule('oas3-valid-schema-example', [
       },
       errors: [
         {
-          message: '`example` property must be equal to one of the allowed values: `a`, `b`',
+          message: '"example" property must be equal to one of the allowed values: "a", "b"',
           path: [field, 'schemas', 'xoxo', 'example'],
           severity: DiagnosticSeverity.Error,
         },
@@ -233,7 +233,7 @@ testRule('oas3-valid-schema-example', [
       },
       errors: [
         {
-          message: '`example` property type must be number',
+          message: '"example" property type must be number',
           severity: DiagnosticSeverity.Error,
           path: [field, 'schemas', 'abc', 'properties', 'abc', 'example'],
         },
@@ -273,7 +273,7 @@ testRule('oas3-valid-schema-example', [
       errors: [
         {
           code: 'oas3-valid-schema-example',
-          message: '`example` property must have required property `url`',
+          message: '"example" property must have required property "url"',
           severity: DiagnosticSeverity.Error,
         },
       ],
@@ -380,7 +380,7 @@ testRule('oas3-valid-schema-example', [
     },
     errors: [
       {
-        message: '`example` property type must be string',
+        message: '"example" property type must be string',
         path: [
           'paths',
           '/pet',
@@ -483,7 +483,7 @@ testRule('oas3-valid-schema-example', [
     errors: [
       {
         severity: DiagnosticSeverity.Error,
-        message: '`example` property type must be string',
+        message: '"example" property type must be string',
         path: ['paths', '/pet', 'post', 'parameters', '0', 'schema', 'example'],
       },
     ],
@@ -565,7 +565,7 @@ testRule('oas3-valid-schema-example', [
     },
     errors: [
       {
-        message: '`example` property type must be number',
+        message: '"example" property type must be number',
         severity: DiagnosticSeverity.Error,
         path: ['paths', '/pet', 'post', 'parameters', '0', 'schema', 'properties', 'abc', 'example'],
       },
@@ -609,7 +609,7 @@ testRule('oas3-valid-schema-example', [
     },
     errors: [
       {
-        message: '`example` property must have required property `url`',
+        message: '"example" property must have required property "url"',
         severity: DiagnosticSeverity.Error,
         path: ['paths', '/pet', 'post', 'parameters', '0', 'schema', 'example'],
       },
diff --git a/packages/rulesets/src/oas/functions/__tests__/oasDocumentSchema.test.ts b/packages/rulesets/src/oas/functions/__tests__/oasDocumentSchema.test.ts
index b9db04bc..0f9d3391 100644
--- a/packages/rulesets/src/oas/functions/__tests__/oasDocumentSchema.test.ts
+++ b/packages/rulesets/src/oas/functions/__tests__/oasDocumentSchema.test.ts
@@ -82,7 +82,7 @@ describe('oasDocumentSchema', () => {
       ).toEqual([
         {
           code: 'oas3-schema',
-          message: '`type` property type must be string.',
+          message: '"type" property type must be string.',
           path: ['paths', '/user', 'get', 'parameters', '0', 'schema', 'type'],
           severity: DiagnosticSeverity.Error,
           range: expect.any(Object),
@@ -127,7 +127,7 @@ describe('oasDocumentSchema', () => {
         },
         {
           code: 'oas3-schema',
-          message: 'Property `foo` is not expected to be here.',
+          message: 'Property "foo" is not expected to be here.',
           path: ['components', 'securitySchemes', 'basic', 'foo'],
           severity: DiagnosticSeverity.Error,
           range: expect.any(Object),
@@ -157,7 +157,7 @@ describe('oasDocumentSchema', () => {
       ).toEqual([
         {
           code: 'oas3-schema',
-          message: '`200` property must have required property `description`.',
+          message: '"200" property must have required property "description".',
           path: ['paths', '/user', 'get', 'responses', '200'],
           severity: DiagnosticSeverity.Error,
           range: expect.any(Object),
diff --git a/packages/rulesets/src/oas/functions/__tests__/oasSchema.test.ts b/packages/rulesets/src/oas/functions/__tests__/oasSchema.test.ts
index 16669187..08a24ea8 100644
--- a/packages/rulesets/src/oas/functions/__tests__/oasSchema.test.ts
+++ b/packages/rulesets/src/oas/functions/__tests__/oasSchema.test.ts
@@ -39,7 +39,7 @@ describe('oasSchema', () => {
     expect(runSchema({ foo: 2 }, testSchema, { document })).toEqual([]);
     expect(runSchema({ foo: 'test' }, testSchema, { document })).toEqual([
       {
-        message: '`foo` property type must be number,null',
+        message: '"foo" property type must be number,null',
         path: ['foo'],
       },
     ]);
@@ -84,7 +84,7 @@ describe('oasSchema', () => {
     expect(runSchema({ foo: 2 }, testSchema, { document })).toEqual([]);
     expect(runSchema({ foo: 'test' }, testSchema, { document })).toEqual([
       {
-        message: '`foo` property type must be number,null',
+        message: '"foo" property type must be number,null',
         path: ['foo'],
       },
     ]);
@@ -110,22 +110,22 @@ describe('oasSchema', () => {
     expect(result).toEqual([
       expect.objectContaining({
         code: 'oas3-schema',
-        message: '`email` property must match format `email`.',
+        message: '"email" property must match format "email".',
         path: ['info', 'contact', 'email'],
       }),
       expect.objectContaining({
         code: 'oas3-schema',
-        message: '`header-1` property must have required property `schema`.',
+        message: '"header-1" property must have required property "schema".',
         path: ['paths', '/pets', 'get', 'responses', '200', 'headers', 'header-1'],
       }),
       expect.objectContaining({
         code: 'oas3-schema',
-        message: 'Property `type` is not expected to be here.',
+        message: 'Property "type" is not expected to be here.',
         path: ['paths', '/pets', 'get', 'responses', '200', 'headers', 'header-1', 'type'],
       }),
       expect.objectContaining({
         code: 'oas3-schema',
-        message: 'Property `op` is not expected to be here.',
+        message: 'Property "op" is not expected to be here.',
         path: ['paths', '/pets', 'get', 'responses', '200', 'headers', 'header-1', 'op'],
       }),
       expect.objectContaining({
@@ -136,7 +136,7 @@ describe('oasSchema', () => {
       }),
       expect.objectContaining({
         code: 'oas3-valid-schema-example',
-        message: '`example` property type must be number',
+        message: '"example" property type must be number',
         path: ['components', 'schemas', 'foo', 'example'],
       }),
     ]);
diff --git a/test-harness/scenarios/aliases.scenario b/test-harness/scenarios/aliases.scenario
index 493b9d9e..19f3e06a 100644
--- a/test-harness/scenarios/aliases.scenario
+++ b/test-harness/scenarios/aliases.scenario
@@ -41,9 +41,9 @@ module.exports = {
 {bin} lint {document} --ruleset {asset:ruleset}
 ====stdout====
 {document}
- 2:17  warning  valid-name-and-description  `description` property must be truthy  [0].info.description
- 3:13  warning  valid-contact               `contact` property must be falsy       [0].info.contact
- 4:12  warning  valid-name-and-description  `name` property must be truthy         [0].info.contact.name
-  5:8  warning  valid-info                  `info` property must be truthy         [1].info
+ 2:17  warning  valid-name-and-description  "description" property must be truthy  [0].info.description
+ 3:13  warning  valid-contact               "contact" property must be falsy       [0].info.contact
+ 4:12  warning  valid-name-and-description  "name" property must be truthy         [0].info.contact.name
+  5:8  warning  valid-info                  "info" property must be truthy         [1].info
 
 ✖ 4 problems (0 errors, 4 warnings, 0 infos, 0 hints)
diff --git a/test-harness/scenarios/duplicated-entry-in-enum.oas.scenario b/test-harness/scenarios/duplicated-entry-in-enum.oas.scenario
index 291fc642..2951111f 100644
--- a/test-harness/scenarios/duplicated-entry-in-enum.oas.scenario
+++ b/test-harness/scenarios/duplicated-entry-in-enum.oas.scenario
@@ -30,6 +30,6 @@ components:
 {bin} lint {document} --ruleset {asset:ruleset}
 ====stdout====
 {document}
- 10:16  error  duplicated-entry-in-enum  A duplicated entry in the enum was found. Error: `enum` property must not have duplicate items (items ## 1 and 5 are identical)  components.schemas.a_model.properties.id.enum
+ 10:16  error  duplicated-entry-in-enum  A duplicated entry in the enum was found. Error: "enum" property must not have duplicate items (items ## 1 and 5 are identical)  components.schemas.a_model.properties.id.enum
 
 ✖ 1 problem (1 error, 0 warnings, 0 infos, 0 hints)
diff --git a/test-harness/scenarios/examples.oas2.scenario b/test-harness/scenarios/examples.oas2.scenario
index c27fd169..fce1521c 100644
--- a/test-harness/scenarios/examples.oas2.scenario
+++ b/test-harness/scenarios/examples.oas2.scenario
@@ -264,13 +264,13 @@ module.exports = oas;
 {bin} lint {document} --ruleset {asset:ruleset}
 ====stdout====
 {document}
-  83:26    error  oas2-valid-schema-example  `completed` property type must be boolean                                      paths./schema-example.get.responses[500].schema.example.completed
-  91:26    error  oas2-valid-schema-example  `example` property type must be boolean                                        paths./schema-example.get.responses[501].schema.properties.some-bool.example
-  95:26    error  oas2-valid-schema-example  `example` property must match format `date-time`                               paths./schema-example.get.responses[501].schema.properties.some-date.example
-  99:26    error  oas2-valid-schema-example  `example` property must match format `url`                                     paths./schema-example.get.responses[501].schema.properties.some-url.example
+  83:26    error  oas2-valid-schema-example  "completed" property type must be boolean                                      paths./schema-example.get.responses[500].schema.example.completed
+  91:26    error  oas2-valid-schema-example  "example" property type must be boolean                                        paths./schema-example.get.responses[501].schema.properties.some-bool.example
+  95:26    error  oas2-valid-schema-example  "example" property must match format "date-time"                               paths./schema-example.get.responses[501].schema.properties.some-date.example
+  99:26    error  oas2-valid-schema-example  "example" property must match format "url"                                     paths./schema-example.get.responses[501].schema.properties.some-url.example
  106:11  warning  operation-tag-defined      Operation tags should be defined in global tags.                               paths./param-examples.get.tags[0]
- 120:22    error  oas2-valid-schema-example  `x-example` property must be equal to one of the allowed values: `foo`, `bar`  paths./param-examples.get.parameters[1].x-example
- 177:30    error  oas2-valid-media-example   `application/json` property must have required property `name`                 paths./response-examples.get.responses[500].examples.application/json
- 194:30    error  oas2-valid-media-example   `application/json` property must have required property `user`                 paths./response-examples-via-$ref.get.responses[200].examples.application/json
+ 120:22    error  oas2-valid-schema-example  "x-example" property must be equal to one of the allowed values: "foo", "bar"  paths./param-examples.get.parameters[1].x-example
+ 177:30    error  oas2-valid-media-example   "application/json" property must have required property "name"                 paths./response-examples.get.responses[500].examples.application/json
+ 194:30    error  oas2-valid-media-example   "application/json" property must have required property "user"                 paths./response-examples-via-$ref.get.responses[200].examples.application/json
 
 ✖ 8 problems (7 errors, 1 warning, 0 infos, 0 hints)
diff --git a/test-harness/scenarios/examples.oas3.scenario b/test-harness/scenarios/examples.oas3.scenario
index f85d0bc1..744dd053 100644
--- a/test-harness/scenarios/examples.oas3.scenario
+++ b/test-harness/scenarios/examples.oas3.scenario
@@ -353,15 +353,15 @@ module.exports = oas;
 {bin} lint {document} --ruleset {asset:ruleset}
 ====stdout====
 {document}
- 126:25  error  oas3-valid-schema-example  `example` property must have required property `name`                        paths./schema-example.get.responses[500].content.application/json.schema.example
- 138:30  error  oas3-valid-schema-example  `example` property type must be boolean                                      paths./schema-example.get.responses[501].content.application/json.schema.properties.some-bool.example
- 142:30  error  oas3-valid-schema-example  `example` property must match format `date-time`                             paths./schema-example.get.responses[501].content.application/json.schema.properties.some-date.example
- 146:30  error  oas3-valid-schema-example  `example` property must match format `url`                                   paths./schema-example.get.responses[501].content.application/json.schema.properties.some-url.example
- 169:20  error  oas3-valid-media-example   `example` property must be equal to one of the allowed values: `foo`, `bar`  paths./param-examples.get.parameters[1].example
- 185:22  error  oas3-valid-schema-example  `example` property must be equal to one of the allowed values: `foo`, `bar`  paths./param-examples.get.parameters[3].schema.example
- 197:22  error  oas3-valid-media-example   `value` property type must be string                                         paths./param-examples.get.parameters[4].examples.the-bad.value
- 199:21  error  oas3-valid-media-example   `value` property type must be string                                         paths./param-examples.get.parameters[4].examples.the-ugly.value
- 262:25  error  oas3-valid-media-example   `value` property must have required property `id`                            paths./response-examples.get.responses[500].content.application/json.examples.response.value
- 282:25  error  oas3-valid-media-example   `value` property must have required property `user`                          paths./response-examples-via-$ref.get.responses[200].content.application/json.examples.response.value
+ 126:25  error  oas3-valid-schema-example  "example" property must have required property "name"                        paths./schema-example.get.responses[500].content.application/json.schema.example
+ 138:30  error  oas3-valid-schema-example  "example" property type must be boolean                                      paths./schema-example.get.responses[501].content.application/json.schema.properties.some-bool.example
+ 142:30  error  oas3-valid-schema-example  "example" property must match format "date-time"                             paths./schema-example.get.responses[501].content.application/json.schema.properties.some-date.example
+ 146:30  error  oas3-valid-schema-example  "example" property must match format "url"                                   paths./schema-example.get.responses[501].content.application/json.schema.properties.some-url.example
+ 169:20  error  oas3-valid-media-example   "example" property must be equal to one of the allowed values: "foo", "bar"  paths./param-examples.get.parameters[1].example
+ 185:22  error  oas3-valid-schema-example  "example" property must be equal to one of the allowed values: "foo", "bar"  paths./param-examples.get.parameters[3].schema.example
+ 197:22  error  oas3-valid-media-example   "value" property type must be string                                         paths./param-examples.get.parameters[4].examples.the-bad.value
+ 199:21  error  oas3-valid-media-example   "value" property type must be string                                         paths./param-examples.get.parameters[4].examples.the-ugly.value
+ 262:25  error  oas3-valid-media-example   "value" property must have required property "id"                            paths./response-examples.get.responses[500].content.application/json.examples.response.value
+ 282:25  error  oas3-valid-media-example   "value" property must have required property "user"                          paths./response-examples-via-$ref.get.responses[200].content.application/json.examples.response.value
 
 ✖ 10 problems (10 errors, 0 warnings, 0 infos, 0 hints)
diff --git a/test-harness/scenarios/oas2-valid-media-example.oas2.scenario b/test-harness/scenarios/oas2-valid-media-example.oas2.scenario
index c393e147..0a20342f 100644
--- a/test-harness/scenarios/oas2-valid-media-example.oas2.scenario
+++ b/test-harness/scenarios/oas2-valid-media-example.oas2.scenario
@@ -41,7 +41,7 @@ module.exports = {
 {bin} lint {document} --ruleset {asset:ruleset}
 ====stdout====
 {document}
- 11:31  error  oas2-valid-media-example  `application/json` property type must be boolean                paths./pets.get.responses[200].examples.application/json
- 26:32  error  oas2-valid-media-example  `application/yaml` property must have required property `user`  paths./pets.get.post.responses[200].examples.application/yaml
+ 11:31  error  oas2-valid-media-example  "application/json" property type must be boolean                paths./pets.get.responses[200].examples.application/json
+ 26:32  error  oas2-valid-media-example  "application/yaml" property must have required property "user"  paths./pets.get.post.responses[200].examples.application/yaml
 
 ✖ 2 problems (2 errors, 0 warnings, 0 infos, 0 hints)
diff --git a/test-harness/scenarios/oas3-schema.scenario b/test-harness/scenarios/oas3-schema.scenario
index 2c38c31e..2d4b1053 100644
--- a/test-harness/scenarios/oas3-schema.scenario
+++ b/test-harness/scenarios/oas3-schema.scenario
@@ -60,14 +60,14 @@ module.exports = {
 {bin} lint {document} --ruleset {asset:ruleset}
 ====stdout====
 {document}
-  6:10  error  oas3-schema  Property `foo` is not expected to be here.              info.contact.foo
- 12:17  error  oas3-schema  Property `type` is not expected to be here.             paths./user.get.parameters[0].type
- 23:18  error  oas3-schema  `type` property type must be string.                    paths./user.get.parameters[1].schema.type
- 24:11  error  oas3-schema  `2` property must have required property `schema`.      paths./user.get.parameters[2]
- 26:17  error  oas3-schema  Property `type` is not expected to be here.             paths./user.get.parameters[2].type
- 37:28  error  oas3-schema  `user_id` property type must be object.                 paths./user.get.responses[200].content.application/json.schema.properties.user_id
- 41:28  error  oas3-schema  `properties` property type must be object.              paths./user.get.responses[200].content.application/yaml.schema.properties
- 43:23  error  oas3-schema  `description` property type must be string.             paths./user.get.responses[400].description
- 46:17  error  oas3-schema  `responses` property must not have fewer than 1 items.  paths./address.get.responses
+  6:10  error  oas3-schema  Property "foo" is not expected to be here.              info.contact.foo
+ 12:17  error  oas3-schema  Property "type" is not expected to be here.             paths./user.get.parameters[0].type
+ 23:18  error  oas3-schema  "type" property type must be string.                    paths./user.get.parameters[1].schema.type
+ 24:11  error  oas3-schema  "2" property must have required property "schema".      paths./user.get.parameters[2]
+ 26:17  error  oas3-schema  Property "type" is not expected to be here.             paths./user.get.parameters[2].type
+ 37:28  error  oas3-schema  "user_id" property type must be object.                 paths./user.get.responses[200].content.application/json.schema.properties.user_id
+ 41:28  error  oas3-schema  "properties" property type must be object.              paths./user.get.responses[200].content.application/yaml.schema.properties
+ 43:23  error  oas3-schema  "description" property type must be string.             paths./user.get.responses[400].description
+ 46:17  error  oas3-schema  "responses" property must not have fewer than 1 items.  paths./address.get.responses
 
 ✖ 9 problems (9 errors, 0 warnings, 0 infos, 0 hints)
diff --git a/test-harness/scenarios/results-format-junit.oas3.scenario b/test-harness/scenarios/results-format-junit.oas3.scenario
index 986bd165..5d921406 100644
--- a/test-harness/scenarios/results-format-junit.oas3.scenario
+++ b/test-harness/scenarios/results-format-junit.oas3.scenario
@@ -16,6 +16,6 @@ module.exports = oas;
 <?xml version="1.0" encoding="utf-8"?>
 <testsuites>
 <testsuite package="org.spectral" time="0" tests="1" errors="0" failures="1" name="{document}">
-<testcase time="0" name="org.spectral.oas3-schema" classname="{document|no-ext}"><failure message="Property `foo` is not expected to be here."><![CDATA[line 5, col 7, Property `foo` is not expected to be here. (oas3-schema) at path #/info/foo]]></failure></testcase>
+<testcase time="0" name="org.spectral.oas3-schema" classname="{document|no-ext}"><failure message="Property &quot;foo&quot; is not expected to be here."><![CDATA[line 5, col 7, Property &quot;foo&quot; is not expected to be here. (oas3-schema) at path #/info/foo]]></failure></testcase>
 </testsuite>
 </testsuites>
diff --git a/test-harness/scenarios/rules-matching-multiple-places.scenario b/test-harness/scenarios/rules-matching-multiple-places.scenario
index 091eefbd..d7061cf7 100644
--- a/test-harness/scenarios/rules-matching-multiple-places.scenario
+++ b/test-harness/scenarios/rules-matching-multiple-places.scenario
@@ -51,6 +51,6 @@ module.exports = {
 {document}
   6:15  error  valid-user-properties     "number" must match the pattern "/^string$/"   schemas.user.properties.name.type
  10:15  error  valid-user-properties     "boolean" must match the pattern "/^string$/"  schemas.user.properties.occupation.type
- 11:11  error  require-user-and-address  `address` property must be truthy              schemas.address
+ 11:11  error  require-user-and-address  "address" property must be truthy              schemas.address
 
 ✖ 3 problems (3 errors, 0 warnings, 0 infos, 0 hints)