diff --git a/Lib/test/test_minidom.py b/Lib/test/test_minidom.py
index a1516c2..113c7fd 100644
--- a/Lib/test/test_minidom.py
+++ b/Lib/test/test_minidom.py
@@ -360,15 +360,6 @@
                 and el.getAttribute("spam2") == "bam2")
         dom.unlink()
 
-    def testGetAttrList(self):
-        pass
-
-    def testGetAttrValues(self):
-        pass
-
-    def testGetAttrLength(self):
-        pass
-
     def testGetAttribute(self):
         dom = Document()
         child = dom.appendChild(
@@ -389,8 +380,6 @@
         self.assertEqual(child2.getAttributeNS("http://www.python.org", "missing"),
                          '')
 
-    def testGetAttributeNode(self): pass
-
     def testGetElementsByTagNameNS(self):
         d="""<foo xmlns:minidom='http://pyxml.sf.net/minidom'>
         <minidom:myelem/>
@@ -461,8 +450,6 @@
         self.confirm(str(node) == repr(node))
         dom.unlink()
 
-    def testTextNodeRepr(self): pass
-
     def testWriteXML(self):
         str = '<?xml version="1.0" ?><a b="c"/>'
         dom = parseString(str)
@@ -526,14 +513,6 @@
                 and pi.localName is None
                 and pi.namespaceURI == xml.dom.EMPTY_NAMESPACE)
 
-    def testProcessingInstructionRepr(self): pass
-
-    def testTextRepr(self): pass
-
-    def testWriteText(self): pass
-
-    def testDocumentElement(self): pass
-
     def testTooManyDocumentElements(self):
         doc = parseString("<doc/>")
         elem = doc.createElement("extra")
@@ -542,26 +521,6 @@
         elem.unlink()
         doc.unlink()
 
-    def testCreateElementNS(self): pass
-
-    def testCreateAttributeNS(self): pass
-
-    def testParse(self): pass
-
-    def testParseString(self): pass
-
-    def testComment(self): pass
-
-    def testAttrListItem(self): pass
-
-    def testAttrListItems(self): pass
-
-    def testAttrListItemNS(self): pass
-
-    def testAttrListKeys(self): pass
-
-    def testAttrListKeysNS(self): pass
-
     def testRemoveNamedItem(self):
         doc = parseString("<doc a=''/>")
         e = doc.documentElement
@@ -581,30 +540,6 @@
         self.assertRaises(xml.dom.NotFoundErr, attrs.removeNamedItemNS,
                           "http://xml.python.org/", "b")
 
-    def testAttrListValues(self): pass
-
-    def testAttrListLength(self): pass
-
-    def testAttrList__getitem__(self): pass
-
-    def testAttrList__setitem__(self): pass
-
-    def testSetAttrValueandNodeValue(self): pass
-
-    def testParseElement(self): pass
-
-    def testParseAttributes(self): pass
-
-    def testParseElementNamespaces(self): pass
-
-    def testParseAttributeNamespaces(self): pass
-
-    def testParseProcessingInstructions(self): pass
-
-    def testChildNodes(self): pass
-
-    def testFirstChild(self): pass
-
     def testHasChildNodes(self):
         dom = parseString("<doc><foo/></doc>")
         doc = dom.documentElement
diff --git a/Misc/ACKS b/Misc/ACKS
index 702e679..bb469ae 100644
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -459,6 +459,7 @@
 Dag Gruneau
 Filip Gruszczyński
 Thomas Guettler
+Ajitesh Gupta
 Michael Guravage
 Lars Gustäbel
 Thomas Güttler
diff --git a/Misc/NEWS b/Misc/NEWS
index 2db6741..70eb183 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -165,6 +165,8 @@
 Tests
 -----
 
+- Issue #19683: Removed empty tests from test_minidom.  Patch by Ajitesh Gupta.
+
 - Issue #19919: Fix flacky SSL test. connect_ex() sometimes returns
   EWOULDBLOCK on Windows or VMs hosted on Windows.
 
