diff --git a/CHANGES.txt b/CHANGES.txt index da09ecd38e..6302c9196b 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ Current +New: Added .yml file extension for yaml suite files, previously only .yaml was allowed for yaml (Steven Jubb) Fixed: GITHUB-2770: FileAlreadyExistsException when report is generated (melloware) Fixed: GITHUB-2825: Programically Loading TestNG Suite from JAR File Fails to Delete Temporary Copy of Suite File (Steven Jubb) Fixed: GITHUB-2818: Add configuration key for callback discrepancy behavior (Krishnan Mahadevan) diff --git a/testng-core/src/main/java/org/testng/Converter.java b/testng-core/src/main/java/org/testng/Converter.java index cf0b250ceb..333be9eee9 100644 --- a/testng-core/src/main/java/org/testng/Converter.java +++ b/testng-core/src/main/java/org/testng/Converter.java @@ -65,7 +65,7 @@ private void run(String[] args) throws IOException { if (file.endsWith(".xml")) { File newFile = new File(m_outputDirectory, baseName + ".yaml"); writeFile(newFile, Yaml.toYaml(suite).toString()); - } else if (file.endsWith(".yaml")) { + } else if (file.endsWith(".yaml") || file.endsWith(".yml")) { File newFile = new File(m_outputDirectory, baseName + ".xml"); writeFile(newFile, suite.toXml()); } else { diff --git a/testng-core/src/main/java/org/testng/internal/YamlParser.java b/testng-core/src/main/java/org/testng/internal/YamlParser.java index a044978c26..cb66294860 100644 --- a/testng-core/src/main/java/org/testng/internal/YamlParser.java +++ b/testng-core/src/main/java/org/testng/internal/YamlParser.java @@ -21,6 +21,7 @@ public XmlSuite parse(String filePath, InputStream is, boolean loadClasses) @Override public boolean accept(String fileName) { - return Parser.hasFileScheme(fileName) && fileName.endsWith(".yaml"); + return Parser.hasFileScheme(fileName) + && (fileName.endsWith(".yaml") || fileName.endsWith(".yml")); } } diff --git a/testng-core/src/test/java/test/yaml/YamlTest.java b/testng-core/src/test/java/test/yaml/YamlTest.java index 3d5f6fc33f..701111e3c5 100644 --- a/testng-core/src/test/java/test/yaml/YamlTest.java +++ b/testng-core/src/test/java/test/yaml/YamlTest.java @@ -1,6 +1,8 @@ package test.yaml; import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.File; import java.io.FileInputStream; @@ -31,6 +33,17 @@ public Object[][] dp() { }; } + @Test( + description = + "Validate that the YamlParser accepts yaml files with a .yaml or a .yml file extension, but not other file types.") + public void accept() { + YamlParser yamlParser = new YamlParser(); + + assertTrue(yamlParser.accept("TestSuite.yml")); + assertTrue(yamlParser.accept("TestSuite.yaml")); + assertFalse(yamlParser.accept("TestSuite.xml")); + } + @Test(dataProvider = "dp") public void compareFiles(String name) throws IOException { Collection s1 =