My test case runs fine when run from the command line with: py foo_test.py (please see below).
When i run the following notebook:
from __future__ import absolute_import, division, print_function, unicode_literals
import tensorflow as tf
import tensorflow_datasets as tfds
from importlib import reload
from tensorflow.python.framework import test_util
import foo_test
foo_test=reload(foo_test)
foo_test.main()
i get:
in: foo_test.py::main()
Running tests under Python 3.8.3: d:\pyvenvs\tf2.4\scripts\python.exe
-----------------------------------------------------------------
UnrecognizedFlagError Traceback (most recent call last)
<ipython-input-1-8f6431fbb106> in <module>
9 import foo_test
10 foo_test=reload(foo_test)
---> 11 foo_test.main()
D:\ray\ml\newdlaicourse\foo_test.py in main()
23 import os
24 print(f'in: {os.path.basename(__file__)}::main()')
---> 25 tf.test.main()
26 if __name__ == '__main__':
27 main()
d:\pyvenvs\tf2.4\lib\site-packages\tensorflow\python\platform\test.py in main(argv)
56 """Runs all unit tests."""
57 _test_util.InstallStackTraceHandler()
---> 58 return _googletest.main(argv)
59
60
d:\pyvenvs\tf2.4\lib\site-packages\tensorflow\python\platform\googletest.py in main(argv)
64 args = sys.argv
65 return app.run(main=g_main, argv=args)
---> 66 benchmark.benchmarks_main(true_main=main_wrapper)
67
68
d:\pyvenvs\tf2.4\lib\site-packages\tensorflow\python\platform\benchmark.py in benchmarks_main(true_main, argv)
484 app.run(lambda _: _run_benchmarks(regex), argv=argv)
485 else:
--> 486 true_main()
d:\pyvenvs\tf2.4\lib\site-packages\tensorflow\python\platform\googletest.py in main_wrapper()
63 if args is None:
64 args = sys.argv
---> 65 return app.run(main=g_main, argv=args)
66 benchmark.benchmarks_main(true_main=main_wrapper)
67
d:\pyvenvs\tf2.4\lib\site-packages\tensorflow\python\platform\app.py in run(main, argv)
38 main = main or _sys.modules['__main__'].main
39
---> 40 _run(main=main, argv=argv, flags_parser=_parse_flags_tolerate_undef)
d:\pyvenvs\tf2.4\lib\site-packages\absl\app.py in run(main, argv, flags_parser)
301 callback()
302 try:
--> 303 _run_main(main, args)
304 except UsageError as error:
305 usage(shorthelp=True, detailed_error=error, exitcode=error.exitcode)
d:\pyvenvs\tf2.4\lib\site-packages\absl\app.py in _run_main(main, argv)
249 sys.exit(retval)
250 else:
--> 251 sys.exit(main(argv))
252
253
d:\pyvenvs\tf2.4\lib\site-packages\tensorflow\python\platform\googletest.py in g_main(argv)
54 """Delegate to absltest.main."""
55
---> 56 absltest_main(argv=argv)
57
58
d:\pyvenvs\tf2.4\lib\site-packages\absl\testing\absltest.py in main(*args, **kwargs)
2000 """
2001 print_python_version()
-> 2002 _run_in_app(run_tests, args, kwargs)
2003
2004
d:\pyvenvs\tf2.4\lib\site-packages\absl\testing\absltest.py in _run_in_app(function, args, kwargs)
2103 # after the command-line has been parsed. So we have the for loop below
2104 # to change back flags to their old values.
-> 2105 argv = FLAGS(sys.argv)
2106 for saved_flag in six.itervalues(saved_flags):
2107 saved_flag.restore_flag()
d:\pyvenvs\tf2.4\lib\site-packages\absl\flags\_flagvalues.py in __call__(self, argv, known_only)
652 for name, value in unknown_flags:
653 suggestions = _helpers.get_flag_suggestions(name, list(self))
--> 654 raise _exceptions.UnrecognizedFlagError(
655 name, value, suggestions=suggestions)
656
UnrecognizedFlagError: Unknown command line flag 'f'
This code (foo_test.py) seems to work:
from __future__ import absolute_import, division, print_function, unicode_literals
import tensorflow as tf
from tensorflow.python.framework import test_util
class MyTestCase(tf.test.TestCase):
#@run_in_graph_and_eager_modes
def setUp(self):
super(MyTestCase,self).setUp()
def tearDown(self):
super(MyTestCase,self).tearDown()
def a_test(self):
print("a test")
x = tf.constant([1, 2])
y = tf.constant([3, 4])
z = tf.add(x, y)
self.assertAllEqual([4, 6], self.evaluate(z))
def test2(self):
print("test 2")
self.assertEqual(3,3)
def test3(self):
print("test 3")
self.assertEqual(3,4)
def main():
import os
print(f'in: {os.path.basename(__file__)}::main()')
tf.test.main()
if __name__ == '__main__':
main()
(tf2.4) D:\ray\ml\newdlaicourse>py foo_test.py
in: foo_test.py::main()
Running tests under Python 3.8.3: D:\pyvenvs\tf2.4\Scripts\python.exe
[ RUN ] MyTestCase.test2
test 2
INFO:tensorflow:time(__main__.MyTestCase.test2): 0.0s
I1110 18:35:10.862683 9316 test_util.py:2075] time(__main__.MyTestCase.test2): 0.0s
[ OK ] MyTestCase.test2
[ RUN ] MyTestCase.test3
test 3
INFO:tensorflow:time(__main__.MyTestCase.test3): 0.0s
I1110 18:35:10.863683 9316 test_util.py:2075] time(__main__.MyTestCase.test3): 0.0s
[ FAILED ] MyTestCase.test3
[ RUN ] MyTestCase.test_session
[ SKIPPED ] MyTestCase.test_session
======================================================================
FAIL: test3 (__main__.MyTestCase)
MyTestCase.test3
----------------------------------------------------------------------
Traceback (most recent call last):
File "foo_test.py", line 21, in test3
self.assertEqual(3,4)
AssertionError: 3 != 4
----------------------------------------------------------------------
Ran 3 tests in 0.003s
FAILED (failures=1, skipped=1)
from how to run a tf.test.TestCase from jupyter notebook - UnrecognizedFlagError: Unknown command line flag 'f'
No comments:
Post a Comment