#ref is too short (" + length + " < " + getMinLength() + ") #loc";
+ }
+ else if (length > getMaxLength()) {
+ return "TestNG test method name #ref is too long (" + length + " > " + getMaxLength() + ") #loc";
+ }
+ return "JUnit4 test method name #ref doesn't match regex '{0}' #loc";
+ }
+
+ @Override
+ protected String getDefaultRegex() {
+ return "[a-z][A-Za-z_\\d]*";
+ }
+
+ @Override
+ protected int getDefaultMinLength() {
+ return 4;
+ }
+
+ @Override
+ protected int getDefaultMaxLength() {
+ return 64;
+ }
+
+ @Override
+ protected InspectionGadgetsFix buildFix(Object... infos) {
+ return new RenameFix();
+ }
+
+ @Override
+ public BaseInspectionVisitor buildVisitor() {
+ return new TestNGMethodNamingConventionVisitor();
+ }
+
+ private class TestNGMethodNamingConventionVisitor extends BaseInspectionVisitor {
+
+ @Override
+ public void visitMethod(PsiMethod method) {
+ super.visitMethod(method);
+ if (!TestNGUtil.hasTest(method)) {
+ return;
+ }
+ final PsiIdentifier nameIdentifier = method.getNameIdentifier();
+ if (nameIdentifier == null) {
+ return;
+ }
+ final String name = method.getName();
+ if (isValid(name)) {
+ return;
+ }
+ if (!isOnTheFly() && MethodUtils.hasSuper(method)) {
+ return;
+ }
+ if (LibraryUtil.isOverrideOfLibraryMethod(method)) {
+ return;
+ }
+ registerMethodError(method, name);
+ }
+ }
+}
diff --git a/plugins/testng/src/inspectionDescriptions/TestNGMethodNamingConvention.html b/plugins/testng/src/inspectionDescriptions/TestNGMethodNamingConvention.html
new file mode 100644
index 000000000000..2303a201c5d9
--- /dev/null
+++ b/plugins/testng/src/inspectionDescriptions/TestNGMethodNamingConvention.html
@@ -0,0 +1,13 @@
+
+
+Reports TestNG test methods whose names are either too short, too long, or do not follow the specified regular expression pattern.
+When this inspection is enabled, the Instance method naming convention inspection
+will ignore TestNG test methods automatically.
+
++ Use the fields below to specify minimum length, maximum length and regular expression expected for TestNG test method names. + Specify 0 to not check the length of names. Regular expressions are in standard java.util.regex format. +
+ New in 14 + + \ No newline at end of file